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