赞
踩
# 获取帮助
$ openssl rand -h
# 获取16字节数据, 并且以16进制输出到屏幕
$ openssl rand -hex 16
# 获取16字节数据, 并且以16进制输出到infile.txt文件
$ openssl rand -out infile.txt -hex 16
# 获取16字节数据, 并且以base64输出到屏幕
$ openssl rand -base64 16
# 获取帮助
$ openssl dgst -h
# 用sha1算法对infile.txt做摘要
$ openssl dgst -sha1 infile.txt
# 用sha256算法对infile.txt做摘要
$ openssl dgst -sha256 infile.txt
# 用sha256算法对infile.txt做摘要, 结果输出到dgst_sha256文件
$ openssl dgst -sha256 -out dgst_sha256 infile.txt
# 用带hmac key的sha256算法对infile.txt做摘要, 结果输出到dgst_sha256文件,key为12345678
$ openssl dgst -sha256 -out dgst_sha256_hmac -hmac 12345678 infile.txt
# 获取帮助 $ openssl enc -h # 原始文件(待加密的文件)infile.txt: $ cat infile.txt c3faf198553d22638cf24182577c3a56 # 用aes-128-ecb -e加密, -K接密钥, -p打印key和iv(若-P直接打印key和iv, 生成的-out文件为空) # 需要加密的文件为infile.txt, 加密后的文件为outfile.txt # 密钥:11223344112233441122334411223344 $ openssl aes-128-ecb -e -K 11223344112233441122334411223344 -in infile.txt -out outfile.txt -p # 用aes-128-ecb -d解密, -K接密钥, -p打印key和iv(若-P直接打印key和iv, 生成的-out文件为空) # 密钥为11223344112233441122334411223344, decfile.txt解密后的文件 $ openssl aes-128-ecb -d -K 11223344112233441122334411223344 -in outfile.txt -out decfile.txt -p # 用aes-128-cbc -e加密, -K接密钥 -iv接iv值 # 密钥为11223344112233441122334411223344 # iv值为55667788556677885566778855667788 $ openssl aes-128-cbc -e -K 11223344112233441122334411223344 -iv 55667788556677885566778855667788 -in infile.txt -out outfile.txt -p # 用aes-128-cbc -d解密, -K接密钥 -iv接iv值 $ openssl aes-128-cbc -d -K 11223344112233441122334411223344 -iv 55667788556677885566778855667788 -in outfile.txt -out dec_cbc_file.txt -p # 用aes-128-cbc -e加密, -pass pass:123456 $ openssl aes-128-cbc -e -in infile.txt -out outfile.txt -pass pass:123456 -p # 用aes-128-cbc -d解密, -pass pass:123456 $ openssl aes-128-cbc -d -in outfile.txt -out dec_cbc_file.txt -pass pass:123456 -p # 新建文件pwfile,内容为123456 # 用aes-128-cbc -e加密, -pass file:pwfile $ openssl aes-128-cbc -e -in infile.txt -out outfile.txt -pass file:pwfile -p # 用aes-128-cbc -d解密, -pass file:pwfile $ openssl aes-128-cbc -d -in outfile.txt -out dec_cbc_file.txt -pass file:pwfile -p
# 获取帮助 $ openssl genrsa -h # 产生rsa私钥, 打印的屏幕, 默认输出私钥长度为2048bits $ openssl genrsa # 产生rsa私钥, 打印的屏幕, 指定私钥长度为2048bits $ openssl genrsa 2048 # 产生rsa私钥, 输出到private_key文件, 默认输出私钥长度为2048bits $ openssl genrsa -out private_key # Generating RSA private key, 2048 bit long modulus # 产生rsa私钥, 输出到private_key文件, 默认输出私钥长度为2048bits, 用des加密, 接下来需要输入des密钥 # des算法使用56bit密钥, des3算法使用168bit密钥 $ openssl genrsa -out private_key -des 产生rsa私钥, 输出到private_key文件, 指定输出私钥长度为4096bits, 用des加密, 接下来需要输入des密钥 $ openssl genrsa -out private_key -des 4096
# 获取帮助
$ openssl rsa -h
# 用rsa私钥文件private_key.txt生成公钥文件public_key.txt
# -pubout 指定输出文件是公钥
$ openssl rsa -in private_key.txt -pubout -out public_key.txt
注意:无论是使用公钥加密还是私钥加密,RSA每次能够加密的数据长度不能超过RSA密钥长度,并且根据具体的补齐方式不同输入的加密数据最大长度也不一样,而输出长度则总是跟RSA密钥长度相等。RSA不同的补齐方法对应的输入输入长度如下表
# 获取帮助 $ openssl rsautl -h # 方法一: # 使用私钥文件进行加密-inkey private_key, 加密结果输出到-out rsa_enc_out.txt $ openssl rsautl -encrypt -in infile.txt -inkey private_key -out rsa_enc_out.txt $ cat rsa_enc_out.txt 屏幕显示 乱码 # 使用私钥文件进行解密-inkey private_key, 解密结果输出到-out rsa_infile.txt $ openssl rsautl -decrypt -in rsa_enc_out.txt -inkey private_key -out rsa_infile.txt # 方法二: # 生成RSA密钥 $ openssl genrsa -des3 -passout pass:123456 -out RSA.pem # 提取公钥 $ openssl rsa -in RSA.pem -passin pass:123456 -pubout -out pub.pem # 使用RSA作为密钥进行加密,实际上使用其中的公钥进行加密 $ openssl rsautl -encrypt -in plain.txt -inkey RSA.pem -passin pass:123456 -out enc.txt $ cat enc.txt 屏幕显示 乱码 # 使用RSA作为密钥进行解密,实际上使用其中的私钥进行解密 $ openssl rsautl -decrypt -in enc.txt -inkey RSA.pem -passin pass:123456 -out replain.txt $ cat replain.txt 屏幕显示 c3faf198553d22638cf24182577c3a56
参考:
https://www.jianshu.com/p/15b1d935a44b
openssl 对称加密算法enc命令详解 - Gordon0918 - 博客园
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。