去年推出的一些文章中曾介绍过使用openssl命令行完成SHA1、DES、RSA等运算的方法。但其实openssl支持的加解密、签名验签、摘要算法远不止这些。根据不同的应用场景,用户可以自行选择需要的功能。本期介绍如何查阅openssl指令用法。 第一步:查看openssl支持哪些算法指令 命令行输入openssl --help回车可见图1所示,列出了包括签名验签、证书操作、摘要运算、加解密运算等相关指令。 图1 第二步:查看某一具体指令用法 我们以aes-128-ecb指令为例进行说明。该指令可以实现对数据进行aes加密的功能,密钥长度128bits,加密模式为ecb(不带初始向量)。 在命令行输入openssl aes-128-ecb --help 回车可见图2所示,列出了支持输入的参数项。 图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所示。 图3 注意事项:linux创建txt文件时写入的是字符串“1234567812345678”,使用计算器运算时,需要输入十六进制ASCII码,即31323334353637383132333435363738。