去年推出的一些文章中曾介绍过使用openssl命令行完成SHA1、DES、RSA等运算的方法。但其实openssl支持的加解密、签名验签、摘要算法远不止这些。根据不同的应用场景,用户可以自行选择需要的功能。本期介绍如何查阅openssl指令用法。
第一步:查看openssl支持哪些算法指令
命令行输入openssl --help回车可见图1所示,列出了包括签名验签、证书操作、摘要运算、加解密运算等相关指令。
Openssl命令行用法简介
图1
第二步:查看某一具体指令用法
我们以aes-128-ecb指令为例进行说明。该指令可以实现对数据进行aes加密的功能,密钥长度128bits,加密模式为ecb(不带初始向量)。
在命令行输入openssl aes-128-ecb --help 回车可见图2所示,列出了支持输入的参数项。
Openssl命令行用法简介
图2
例如
-in 对输入的文件内容进行加密
-out 将加密后的数据输出到目标文件中
-e 加密运算
-K/-iv 输入密钥或者初始向量iv

下面我们开始测试。
步骤一:创建mingwen.txt并写入数据
touch mingwen.txt
echo "1234567812345678" > mingwen.txt
步骤二:查看数据写入是否成功
cat mingwen.txt
步骤三:加密运算
openssl aes-128-ecb -e -in mingwen.txt -out miwen.txt -K 31313131313131313131313131313131
此指令表示使用31313131313131313131313131313131(16进制数据)作为密钥对mingwen.txt内的数据进行aes-128-ecb加密,并将结果输出到miwen.txt文档中。
步骤四:查看加密后的数据
xxd miwen.txt
0000000: e7c9 4ef2 49fc d860 007b 2d31 d21f bb51 ..N.I..`.{-1...Q
验证测试结果,使用第三方AES计算工具,填入明文和密钥即可运算出结果,如图3所示。
综上,若要对mingwen.txt文件内的数据加密并生成到miwen.txt文件中,则可以采用以下指令,如图3所示。
Openssl命令行用法简介
图3
注意事项:linux创建txt文件时写入的是字符串“1234567812345678”,使用计算器运算时,需要输入十六进制ASCII码,即31323334353637383132333435363738。