openssl version
openssl help
openssl rand -out [输出文件] [编码方式] [随机数长度]
参数说明:
-out 输出文件
: 指定输出文件,不指定时直接输出到命令行编码方式
: 指定使用的编码方式,可选值为 -base64
、 -hex
随机数长度
: 指定生成的随机数长度示例:
openssl rand -out rand.txt -base64 32
openssl genrsa [加密算法] -passout pass:[私钥密码] -out [输出的私钥文件] [私钥长度]
参数说明:
[加密算法]
: 指定私钥的加密算法,可选值参考下方的 加密算法 部分-passout pass:[私钥密码]
: 指定私钥的密码,可选,不指定时无密码[私钥长度]
: 指定生成的秘钥长度(单位为位)-out [输出的私钥文件]
: 指定输出的私钥文件示例:
openssl genrsa -out test.key 2048
openssl ecparam -genkey -name [加密算法] -passout pass:[私钥密码] -out [输出的私钥文件]
参数说明:
[加密算法]
: 指定私钥的加密算法,可选值可通过 openssl ecparam -list_curves
查看-passout pass:[私钥密码]
: 指定私钥的密码,可选,不指定时无密码-out [输出的私钥文件]
: 指定输出的私钥文件示例:
openssl ecparam -genkey -name prime256v1 -out test.key
openssl rsa -in [私钥文件] -passin pass:[私钥密码] -pubout -out [输出的公钥文件]
参数说明:
-in [私钥文件]
: 指定私钥文件-passout pass:[私钥密码]
: 指定私钥的密码,可选,不指定时无密码-pubout
: 表示生成公钥-out [输出的公钥文件]
: 指定输出的公钥文件示例:
openssl rsa -in test.key -pubout -out test_pub.key
openssl ec -pubout -in [私钥文件] -passout pass:[私钥密码] -out [输出的私钥文件]
参数说明:
-pubout
: 指定操作为生成公钥-passout pass:[私钥密码]
: 若私钥存在密码,则需指定密码-out [输出的公钥文件]
: 指定输出的公钥文件示例:
openssl ec -pubout -in test.key -out test_pub.key
openssl speed [算法]
参数说明:
[算法]
: 指定需要测试的算法,不指定时默认测试全部算法示例:
openssl speed aes-256-cbc
openssl dgst [摘要算法] -out [输出文件] [文件]
参数说明:
摘要算法
: 指定摘要算法,可选值参考下方的 摘要算法 部分-out 输出文件
: 指定输出文件,不指定时直接输出到命令行文件
: 指定需生成摘要的文件示例:
openssl dgst -sha1 -out test.txt_sha1 test.txt
openssl dgst [摘要算法] -sign [私钥文件] -out [输出文件] [文件]
参数说明:
摘要算法
: 指定摘要算法,可选值参考下方的 摘要算法 部分-sign 私钥文件
: 指定使用的私钥文件,将使用此私钥进行签名-out 输出文件
: 指定输出文件,不指定时直接输出到命令行文件
: 指定需生成摘要的文件示例:
openssl dgst -sha1 -sign test.key -out test.txt_sha1 test.txt
openssl dgst [摘要算法] -verify [私钥文件] -signature [摘要文件] [文件]
参数说明:
摘要算法
: 指定摘要算法,可选值参考下方的 摘要算法 部分-verify 私钥文件
: 指定使用的私钥文件,将使用此私钥进行验签-signature 摘要文件
: 指定摘要文件名称文件
: 指定生成摘要的文件示例:
openssl dgst -sha1 -verify test.key -signature test.txt_sha1 test.txt
openssl pkeyutl -sign -inkey [私钥文件] -in [需签名的文件] -out [签名文件]
参数说明:
-sign
: 指定操作为签名-inkey [私钥文件]
: 指定签名使用的私钥文件-in [需签名的文件]
: 指定需签名的文件-out [签名文件]
: 指定签名文件示例:
openssl pkeyutl -sign -inkey test.key -in test.txt -out test.sign
openssl pkeyutl -verify -inkey [私钥文件] -in [签名的文件] -sigfile [签名文件]
参数说明:
-verify
: 指定操作为验签-inkey [私钥文件]
: 指定签名使用的私钥文件-in [签名的文件]
: 指定签名的文件-sigfile [签名文件]
: 指定签名文件示例:
openssl pkeyutl -verify -inkey test.key -in test.txt -sigfile test.sign
openssl enc -e [加密算法] -pbkdf2 -iter [迭代次数] -k [加密秘钥] -kfile [加密秘钥文件] -in [需加密的文件] -out [加密后的文件]
参数说明:
-e
: 指定操作为加密[加密算法]
: 指定加密算法,可选值参考下方的 加密算法 部分-pbkdf2
: 指定使用 pbkdf2-iter [迭代次数]
: 指定 pbkdf2 的迭代次数,默认为 10000-k [加密秘钥]
: 指定加密秘钥-kfile [加密秘钥文件]
: 指定加密秘钥文件,将使用文件的第一行内容为加密秘钥-in [需加密的文件]
: 指定需加密的文件-out [加密后的文件]
: 指定加密后的文件-a
或 -base64
: 使用 Base64 编码示例:
openssl enc -e aes-256-cbc -pbkdf2 -iter 20000 -k "123456" -in test.txt -out 1_test.txt
openssl enc -d [加密算法] -pbkdf2 -iter [迭代次数] -k [解密秘钥] -kfile [解密秘钥文件] -in [需解密的文件] -out [解密后的文件]
参数说明:
-d
: 指定操作为解密[加密算法]
: 指定加密算法,可选值参考下方的 加密算法 部分-pbkdf2
: 指定使用 pbkdf2-iter [迭代次数]
: 指定 pbkdf2 的迭代次数,默认为 10000-k [解密秘钥]
: 指定解密秘钥-kfile [解密秘钥文件]
: 指定解密秘钥文件,将使用文件的第一行内容为解密秘钥-in [需解密的文件]
: 指定需解密的文件-out [解密后的文件]
: 指定解密后的文件-a
或 -base64
: 使用 Base64 编码示例:
openssl enc -d aes-256-cbc -pbkdf2 -iter 20000 -k "123456" -in 1_test.txt -out 2_test.txt
openssl pkeyutl -encrypt -inkey [私钥或公钥文件] -pubin -in [需加密的文件] -out [加密后的文件]
参数说明:
-encrypt
: 指定操作为加密-inkey [私钥或公钥文件]
: 指定加密时使用的私钥或公钥-pubin
: 说明使用的为公钥-in [需加密的文件]
: 指定需加密的文件-out [加密后的文件]
: 指定加密后的文件示例:
openssl pkeyutl -encrypt -inkey test.key -in test.txt -out 1_test.txt
openssl pkeyutl -encrypt -inkey test_pub.key -pubin -in test.txt -out 1_test.txt
openssl pkeyutl -decrypt -inkey [私钥文件] -in [需解密的文件] -out [解密后的文件]
参数说明:
-decrypt
: 指定操作为解密-inkey [私钥文件]
: 指定解密时使用的私钥-in [需解密的文件]
: 指定需解密的文件-out [解密后的文件]
: 指定解密后的文件示例:
openssl pkeyutl -decrypt -inkey test.key -in 1_test.txt -out 2_test.txt
此处基于 3.2.1 版本
| 命令 | 算法名称 | 官网 | 项目地址 | 输出长度(bit) |
| -- | -- | -- | -- |
| md4 | MD4 | | | 128 |
| md5 | MD5 | | | 128 |
| sha1 | | | | 160 |
| sha224 | | | | 224 |
| sha256 | | | | 256 |
| sha384 | | | | 384 |
| sha512 | | | | 512 |
| sha3-224 | | | | 224 |
| sha3-256 | | | | 256 |
| sha3-384 | | | | 384 |
| sha3-512 | | | | 512 |
| sha512-224 | | | | 224 |
| sha512-256 | | | | 256 |
| blake2b512 | BLAKE2b | https://www.blake2.net | https://github.com/BLAKE2/BLAKE2 | 512 |
| blake2s256 | BLAKE2s | https://www.blake2.net | https://github.com/BLAKE2/BLAKE2 | 256 |
| shake128 | | | | 128 |
| shake256 | | | | 256 |
| mdc2 | | | | |
| rmd160 | | | | 160 |
| sm3 | | | | |
命令 | 算法名称 |
---|---|
aes-128-cbc | AES-128-CBC |
aes-128-ecb | AES-128-ecb |
aes-192-cbc | AES-128-cbc |
aes-192-ecb | AES-192-ecb |
aes-256-cbc | aes-256-cbc |
aes-256-ecb | aes-256-ecb |
aria-128-cbc | aria-128-cbc |
aria-128-cfb | aria-128-cfb |
aria-128-cfb1 | aria-128-cfb1 |
aria-128-cfb8 | aria-128-cfb8 |
aria-128-ctr | aria-128-ctr |
aria-128-ecb | aria-128-ecb |
aria-128-ofb | aria-128-ofb |
aria-192-cbc | aria-192-cbc |
aria-192-cfb | aria-192-cfb |
aria-192-cfb1 | aria-192-cfb1 |
aria-192-cfb8 | aria-192-cfb8 |
aria-192-ctr | aria-192-ctr |
aria-192-ecb | aria-192-ecb |
aria-192-ofb | aria-192-ofb |
aria-256-cbc | aria-256-cbc |
aria-256-cfb | aria-256-cfb |
aria-256-cfb1 | aria-256-cfb1 |
aria-256-cfb8 | aria-256-cfb8 |
aria-256-ctr | aria-256-ctr |
aria-256-ecb | aria-256-ecb |
aria-256-ofb | aria-256-ofb |
base64 | base64 |
bf | bf |
bf-cbc | bf-cbc |
bf-cfb | bf-cfb |
bf-ecb | bf-ecb |
bf-ofb | bf-ofb |
camellia-128-cbc | camellia-128-cbc |
camellia-128-ecb | camellia-128-ecb |
camellia-192-cbc | camellia-192-cbc |
camellia-192-ecb | camellia-192-ecb |
camellia-256-cbc | camellia-256-cbc |
camellia-256-ecb | camellia-256-ecb |
cast | cast |
cast-cbc | cast-cbc |
cast5-cbc | cast5-cbc |
cast5-cfb | cast5-cfb |
cast5-ecb | cast5-ecb |
cast5-ofb | cast5-ofb |
des | des |
des-cbc | des-cbc |
des-cfb | des-cfb |
des-ecb | des-ecb |
des-ede | des-ede |
des-ede-cbc | des-ede-cbc |
des-ede-cfb | des-ede-cfb |
des-ede-ofb | des-ede-ofb |
des-ede3 | des-ede3 |
des-ede3-cbc | des-ede3-cbc |
des-ede3-cfb | des-ede3-cfb |
des-ede3-ofb | des-ede3-ofb |
des-ofb | des-ofb |
des3 | des3 |
desx | desx |
idea | idea |
idea-cbc | idea-cbc |
idea-cfb | idea-cfb |
idea-ecb | idea-ecb |
idea-ofb | idea-ofb |
rc2 | rc2 |
rc2-40-cbc | rc2-40-cbc |
rc2-64-cbc | rc2-64-cbc |
rc2-cbc | rc2-cbc |
rc2-cfb | rc2-cfb |
rc2-ecb | rc2-ecb |
rc2-ofb | rc2-ofb |
rc4 | rc4 |
rc4-40 | rc4-40 |
seed | seed |
seed-cbc | seed-cbc |
seed-cfb | seed-cfb |
seed-ecb | seed-ecb |
seed-ofb | seed-ofb |
sm4-cbc | sm4-cbc |
sm4-cfb | sm4-cfb |
sm4-ctr | sm4-ctr |
sm4-ecb | sm4-ecb |
sm4-ofb | sm4-ofb |