📜  找不到密码算法“AES-256-GCM”(OpenSSL)-Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:39:44.104000             🧑  作者: Mango

找不到密码算法“AES-256-GCM”(OpenSSL)

最近在使用 OpenSSL 进行加密/解密操作时,遇到了一个问题,就是找不到密码算法“AES-256-GCM”。经过了一番研究,发现是 OpenSSL 版本太老了,导致缺少了 GCM 模式的支持。本文将介绍如何解决这个问题。

问题背景

在使用 OpenSSL 进行加密/解密操作时,可以使用多种密码算法。其中,AES 算法是目前使用最广泛的对称加密算法之一。在 AES 算法的基础上,还有一个 GCM 模式,可以提供更好的安全性和性能。因此,如果需要使用 AES 算法进行加密/解密操作,建议使用 AES-256-GCM 这种密码算法。

然而,当我在使用 OpenSSL 进行 AES-256-GCM 加密操作时,发现提示“unknown cipher AES-256-GCM”。这是因为 OpenSSL 版本太老,不支持 GCM 模式。具体的错误提示如下:

$ openssl enc -aes-256-gcm -in plain.txt -out cipher.txt -pass pass:test
unknown cipher AES-256-GCM

那么该如何解决这个问题呢?

解决方案

要解决这个问题,需要升级 OpenSSL 版本,以支持 GCM 模式。具体的步骤如下:

  1. 卸载旧版本的 OpenSSL。
$ sudo apt-get remove openssl
  1. 下载最新版本的 OpenSSL。
$ wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz
$ tar -zxvf openssl-1.1.1k.tar.gz
$ cd openssl-1.1.1k
  1. 编译和安装新版本的 OpenSSL。
$ ./config
$ make
$ sudo make install
  1. 查看 OpenSSL 版本,确认是否已经升级成功。
$ openssl version
OpenSSL 1.1.1k  25 Mar 2021

现在,我们再次运行加密操作,就可以正常使用 AES-256-GCM 算法了。

$ openssl enc -aes-256-gcm -in plain.txt -out cipher.txt -pass pass:test
总结

在使用 OpenSSL 进行 AES 算法加密/解密操作时,如果遇到找不到密码算法“AES-256-GCM”的问题,可能是 OpenSSL 版本太老,不支持 GCM 模式。解决这个问题的方法是升级 OpenSSL 版本,以支持 GCM 模式。