?
十二????
指令
enc
用法:
? ?
? ? openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e]
? ?
? ? [-d] [-a] [-k password] [-kfile filename] [-K key] [-iv IV] [-p]
? ?
? ? [-P] [-bufsize number] [-debug]
? ?
? ?? ???
? ?
說明:
? ?
對稱加密算法工具。它能夠把數據用不同對稱加密算法來加
/
解密。還能夠把加密
/
接密
,
還可以把結果進行
base64
編碼。
? ?
? ? OPTIONS
? ? -in filename
? ?
要加密
/
解密的輸入文件,缺省為標準輸入。
? ? -out filename
? ?
要加密
/
解密的輸出文件,缺省為標準輸出。
? ? -pass arg
? ?
輸入文件如果有密碼保護,在這里輸入密碼。
? ? -salt
? ?
為了和
openssl0.9.5
以后的版本兼容,必須
set
這個
option.salt
大概又是密碼學里的一個術語,具體是做什么的我也沒弄的很明白。就
我的理解
,
這是加密過后放在密碼最前面的一段字符串
,
用途也是為了讓破解更難
.
如果理解錯了
,
請密碼學高手指正
.
? ? -nosalt
? ?
想和
openssl0.9.5
以前的版本兼容,就
set
這個
option
? ? -e
? ?
一個缺省會
set
的
option,
把輸入數據加密。
? ? -d
? ?
解密輸入數據。
? ? -a
? ?
用
base64
編碼處理數據。
set
了這個
option
表示在加密之后的數據還要用
base64
編碼捏一次,解密之前則先用
base64
編碼解碼。
? ? -k password
? ?
一個過時了的項,為了和以前版本兼容。現在用
-key
代替了。
? ? -kfile filename
? ?
同上,被
passin
代替。
? ? -K key
? ?
以
16
進制表示的密碼。
? ? -iv IV
? ?
作用完全同上。
? ? -p
? ?
打印出使用的密碼。
? ? -P
? ?
作用同上,但打印完之后馬上退出。
? ? -bufsize number
? ?
設置
I/O
操作的緩沖區大小
? ? -debug
? ?
打印調試信息。
? ?
注意事項:
? ? 0.9.5
以后的版本,使用這個指令,
-salt
是必須被
set
的。否則很容易用字典攻擊法破你的密碼,流加密算法也容易被破。
(
加密算法中有塊加密算法
和流加密算法倆種,塊加密算法是一次加密固定長度的數據,一般是
8Bytes,
流加密算法則加密大量數據
)
。為什么我也弄不清楚。研究加密算法實在麻煩,也不是我們程序員的責任本指令可以用不同加密算法,那么哪些好,哪些壞呢?如果
你使用不當,高強度的加密算法也變脆弱了。一般推薦新手門使用
des3-cbc
。
? ?
? ?
本指令支持的加密算法
? ? base64 Base 64
? ? bf-cbc Blowfish in CBC mode
? ?
? ???bf Alias for bf-cbc
? ?
? ???bf-cfb Blowfish in CFB mode
? ?
? ???bf-ecb Blowfish in ECB mode
? ?
? ???bf-ofb Blowfish in OFB mode
? ?
? ???
? ?
? ???cast-cbc CAST in CBC mode
? ?
? ???cast Alias for cast-cbc
? ?
? ???cast5-cbc CAST5 in CBC mode
? ?
? ???cast5-cfb CAST5 in CFB mode
? ?
? ???cast5-ecb CAST5 in ECB mode
? ?
? ???cast5-ofb CAST5 in OFB mode
? ? des-cbc DES in CBC mode
? ?
? ???des Alias for des-cbc
? ?
? ???des-cfb DES in CBC mode
? ?
? ???des-ofb DES in OFB mode
? ?
? ???des-ecb DES in ECB mode
? ?
? ?? ?? ?
? ???des-ede-cbc Two key triple DES EDE in CBC mode
? ?
? ???des-ede Alias for des-ede
? ?
? ???des-ede-cfb Two key triple DES EDE in CFB mode
? ?
? ???des-ede-ofb Two key triple DES EDE in OFB mode
? ?
? ?
? ?
? ???des-ede3-cbc Three key triple DES EDE in CBC mode
? ?
? ???des-ede3 Alias for des-ede3-cbc
? ?
? ???des3 Alias for des-ede3-cbc
? ?
? ???des-ede3-cfb Three key triple DES EDE CFB mode
? ?
? ???des-ede3-ofb Three key triple DES EDE in OFB mode
? ?
? ?? ?desx DESX algorithm.
? ?
? ?? ?idea-cbc IDEA algorithm in CBC mode
? ?
? ???idea same as idea-cbc
? ?
? ???idea-cfb IDEA in CFB mode
? ?
? ???idea-ecb IDEA in ECB mode
? ?
? ???idea-ofb IDEA in OFB mode
? ?
? ???
? ?
? ???rc2-cbc 128 bit RC2 in CBC mode
? ?
? ???rc2 Alias for rc2-cbc
? ?
? ???rc2-cfb 128 bit RC2 in CBC mode
? ?
? ???rc2-ecb 128 bit RC2 in CBC mode
? ?
? ???rc2-ofb 128 bit RC2 in CBC mode
? ?
? ???rc2-64-cbc 64 bit RC2 in CBC mode
? ?
? ???rc2-40-cbc 40 bit RC2 in CBC mode
? ?
? ?? ?? ?
? ???rc4 128 bit RC4
? ?
? ???rc4-64 64 bit RC4
? ?
? ???rc4-40 40 bit RC4
? ?
? ?? ?? ?
? ???rc5-cbc RC5 cipher in CBC mode
? ?
? ???rc5 Alias for rc5-cbc
? ?
? ???rc5-cfb RC5 cipher in CBC mode
? ?
? ???rc5-ecb RC5 cipher in CBC mode
? ?
? ???rc5-ofb RC5 cipher in CBC mode
? ?
? ?
大家可能看到
DES
都分
des-ecb, des-cbc, des-cfb
這些。簡單解釋一下。
? ? ecb
就是說每來
8bytes,
就加密
8bytes
送出去。各個不同的數據塊之間沒有任何聯系。
cbc
和
cfb
則每次加密一個
8bytes
的時候都和上一個
8bytes
加密的結果有一個運算法則。各個數據塊之間是有聯系的。
? ?
舉例時間:
? ?
把某二進制文件轉換成
base64
編碼方式:
? ? openssl base64 -in file.bin -out file.b64
? ?
把某
base64
編碼文件轉換成二進制文件。
? ? openssl base64 -d -in file.b64 -out file.bin
? ?
把某文件用
DES-CBC
方式加密。加密過程中會提示你輸入保護密碼。
? ?
? ???openssl des3 -salt -in file.txt -out file.des3
? ?
解密該文件,
密碼通過
-k
來輸入
? ? openssl des3 -d -salt -in file.des3 -out file.txt -k mypassword
? ?
加密某文件,并且把加密結果進行
base64
編碼。用
bf+cbc
算法加密
? ? openssl bf -a -salt -in file.txt -out file.bf
? ?
先用
base64
解碼某文件,再解密
? ? openssl bf -d -salt -a -in file.bf -out file.txt