OpenSSL语法格式
git
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/对称加密算法
数据加密bash
enc命令的选项 |
默认值 |
备注 |
---|---|---|
-in filename |
标准输入 |
输入文件 |
-out filename |
标准输出 |
输出文件 |
-pass arg |
密码源ide 容许密码从多个途径获取,若是没有命令没有获取到密码,会从终端索取(不回显)。加密 |
|
-e |
默认选项 |
加密输入的数据 |
-d |
解密输入的数据 |
|
-salt |
默认选项 |
加密时密文参杂 |
-S salt |
salt应该是一个“十六进制字符串“ |
|
-ciphername |
加密方法:idea bf、cast、des、des三、idea、rc二、rc四、rc五、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
orm
密码加密blog
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