OpenSSL语法格式
openssl command [ command_opts ] [ command_args ] openssl [ list-standard-commands | list-message-digest-commands | list-cipher-commands | list-cipher-algorithms | list-message-digest-algorithms | list-public-key-algorithms] openssl no-XXX [ arbitrary options ]
1.enc/对称加密
数据加密
enc命令的选项 | 默认值 | 备注 |
---|---|---|
-in filename | 标准输入 | 输入文件 |
-out filename | 标准输出 | 输出文件 |
-pass arg | 密码源 允许密码从多个途径获取,如果没有命令没有获取到密码,会从终端索取(不回显)。 | |
-e | 默认选项 | 加密输入的数据 |
-d | 解密输入的数据 | |
-salt | 默认选项 | 加密时密文参杂 |
-S salt | salt应该是一个“十六进制字符串“ | |
-ciphername | 加密方法: bf、cast、des、des3、idea、rc2、rc4、rc5、aes |
使用des3加密算法 加密数据: $ openssl enc -des3 -in fstab -out fstab.desc -pass pass:123456 && echo $? 0 $ echo "Hello kitty" | openssl enc -des3 -pass pass:22886068 Salted__N|-O {Fv[work@tri ~]$ 解密数据: [view@tri ~]$ cat mimi Salted__L^vp\p{?[work@tri ~]$ cat mimi | openssl enc -des3 -d -pass pass:22886068 Hello kitty 使用rc4加密算法 [view@tri ~]$ echo "Hello xiaobao" | openssl enc -rc4 -out xiaobao.rc4 -pass pass:238997342 [view@tri ~]$ openssl enc -des3 -d -in xiaobao.rc4 -pass pass:238997342 bad decrypt 140418528815008:error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length:evp_enc.c:597: ?i9Z[work@tri ~]$ openssl enc -rc4 -d -in xiaobao.rc4 -pass pass:238997342 Hello xiaobao 使用cast加密算法 [view@tri ~]$ echo "Hello xiaobao" | openssl enc -cast -out xiaobao.cast -pass pass:238997342 [view@tri ~]$ openssl enc -cast -d -in xiaobao.cast -pass pass:238997342 Hello xiaobao 使用bf加密算法 [view@tri ~]$ echo "Hello xiaobao" | openssl enc -bf -out xiaobao.bf -pass pass:238997342 [view@tri ~]$ openssl enc -bf -d -in xiaobao.bf -pass pass:238997342 Hello xiaobao 使用aes加密算法 [view@tri ~]$ cat xiaobao hello moyan. [view@tri ~]$ openssl enc -aes-256-cbc -S "1ae3b897" -in xiaobao -out xiaobao.aes -pass pass:123lkjl3 [view@tri ~]$ openssl enc -aes-256-cbc -d -in xiaobao.aes -pass pass:123lkjl3 hello moyan.
2.哈希密码
2.1.passwd
密码加密
passwd命令的选项 | 默认值 | 备注 |
---|---|---|
-ciphername | -crypt | crypt/1/apr1 |
-salt | 默认(随机参杂) | |
-in | 默认(标准输入) | |
-table | 把输入同步输出 |
[view@tri ~]$ openssl passwd -crypt -salt 7/.wkd.p -table 123456 123456 7/.387fViF0wA [view@tri ~]$ openssl passwd -1 -salt 7/.wkd.p -table 123456 123456 $1$7/.wkd.p$1kZ1FhmTOCnUZSx2nKMpv1 [view@tri ~]$ openssl passwd -apr1 -salt 7/.wkd.p -table 123456 123456 $apr1$7/.wkd.p$E11X7W/a44L/gU9tKOwXx.
2.2.dgst
dgst命令的选项 | 默认值 | 备注 |
---|---|---|
输出格式 | -hex | hex/c/d/binary 十六进制/带冒号的十六进制/包含调试信息的十六进制/二进制格式 |
-out | 标准输出 | 输出到指定的文件 |
-sign file | ||
-verify file | ||
-prverify file | ||
-keyform arg | ||
-signature file | 签名验证 | |
加密格式 | -md4/-md5/-ripemd160/-sha/-sha224 -sha256/-sha384/-sha512/-whirlpool |
md5 [view@tri ~]$ openssl dgst -md5 -hex doc1 doc2 MD5(doc1)= 66ccbf65cfdd62597d3a7aaabd8a24c7 MD5(doc2)= f08ccb550ba74728534dd467e324bb7c [view@tri ~]$ md5sum doc1 doc2 66ccbf65cfdd62597d3a7aaabd8a24c7 doc1 f08ccb550ba74728534dd467e324bb7c doc2 sha256 [view@tri ~]$ openssl dgst -sha256 -hex doc1 doc2 SHA256(doc1)= 0520f85b16f1baa6ca41878981bf1848bcce551fc2c7f1e6d2297fc6ed0389ea SHA256(doc2)= 8851eae4bc339dcfde0a378cc2bd1be0b94e7e126c34e5dd72b8c5728f13fc36
3.“非对称密钥”
3.1.genpkey/创建私钥
genpkey命令的选项 | 默认值 | 备注 |
---|---|---|
-out filename | 标准输出 | 指定输出文件名 |
-outform | 指定输出格式:DER/PEM | |
-pass arg | 加密私钥的密码 | |
-cipher | 指定加密私钥的算法 | |
-paramfile file | 参数文件 | |
-algorithm alg | DSA/RSA/DH |
创建RSA私钥 [view@tri ~]$ openssl genpkey -algorithm RSA 生成DSA密钥参数 [view@tri ~]$ openssl genpkey -genparam -algorithm DSA -out dsap.pem 生成DSA私钥 [view@tri ~]$ openssl genpkey -paramfile dsap.pem -out dsakey.pem
3.2.pkey/管理私钥
pkey命令的选项 | 默认值 | 备注 |
---|---|---|
-inform | PEM | DER/PEM |
-outform | PEM | DER/PEM |
-in filename | 标准输入 | |
-out filename | 标准输出 | |
-passin arg | 原密码 | |
-passout arg | 新密码 | |
-cipher | 加密算法 | |
-pubout | 私钥 | 输出公钥 |
私钥加密 [view@tri ~]$ openssl pkey -in dsakey.pem -des3 -out dsakey.des3 转换私钥格式为DER [view@tri ~]$ openssl pkey -in dsakey.pem -outform DER -out dsakey.der 输出公钥 [view@tri ~]$ openssl pkey -in dsakey.pem -pubout [view@tri ~]$ openssl pkey -in dsakey.des3 -pubout Enter pass phrase for dsakey.des3: [view@tri ~]$ openssl pkey -inform DER -in dsakey.der -pubout
3.3.RSA/DSA/密钥管理
RSA/DSA公共选项 | 默认值 | 备注 |
---|---|---|
-in filename | 标准输入 | |
-passin arg | 密码源 | |
-out filename | 标准输出 | |
-passout arg | 密码源 | |
加密选项 | -des -des3 -idea | |
-text | ||
-noout | ||
-modulus | ||
-pubin | 指定读取为“公钥" | |
-pubout | 指定输出为“公钥” | |
-engine id |
3.3.1.RSA
RSA公共选项 | 默认值 | 备注 |
---|---|---|
-inform PEM|NET|DER | PEM | 密钥格式 |
-outform PEM|NET|DER | PEM | |
-sgckey | ||
-check |
3.3.2.DSA
DSA公共选项 | 默认值 | 备注 |
---|---|---|
-inform PEM|DER | PEM | 密钥格式 |
-outform PEM|DER | PEM |
删除密码 [view@tri ~]$ openssl rsa -in key.pem -out keyout.pem 增加密码 [view@tri ~]$ openssl rsa -in key.pem -des -out keyout.pem 格式转换 [view@tri ~]$ openssl dsa -in key.pem -outform DER -out keyout.der 查看私钥信息 [view@tri ~]$ openssl rsa -in key.pem -text -noout 输出公钥 [view@tri ~]$ openssl rsa -in key.pem -pubout -out pubkey.pem
转载于:https://blog.51cto.com/sunnybay/1406690