使用openssl在命令行加密


對於需要在應用軟件中進行加密編程的開發者,通過命令行把基本的加密操作做一遍是很有意義的。openssl支持在命令行進行各種基本加密算法的操作。這些操作過程無需編程,其命令參數與程序函數調用加密的參數有着很好的直接對應關系。這些加密操作要素在各種不同的硬件、操作系統平台、加密軟件庫上是通用的。我們也可以直接在腳本程序中使用這些命令行的加密操作。由於無需編程,openssl自身又經過了較大范圍、較長時間的實際應用檢驗,所以這里的加解密結果也可以作為自編程序的測試基准使用。

openssl官網上提供了源代碼下載,在各種主流的OS平台下均不難編譯。Linux平台一般內置了openssl軟件,在網上很容易找到編譯好的Windows版本安裝包。

Openssl命令行操作的一般格式是:

openssl  加密操作類型  算法名稱(及工作模式)  密鑰 鹽值  輸入數據  輸出數據

例如,用下面的openssl命令行加密a.txt,結果放在b.bin文件中。

openssl enc -aes-128-ecb -K 000102030405060708090A0B0C0D0E0F -in a.txt -out b.bin -p
當前目錄下會多出b.bin文件,同時屏幕會給出如下兩行輸出:
salt=1800000021000000
key=000102030405060708090A0B0C0D0E0F</P>

參數及輸出解釋如下:

enc 表示執行對稱加密操作;

-aes-128-ecb 表示使用128位AES算法,ECB工作模式;

-K 0001......0F 表示加密使用的密鑰為十六進制000102030405060708090A0B0C0D0E0F;

-in和-out指明輸入和輸出文件名;

-p表示屏幕打印加密所使用的密鑰key、初始向量iv、鹽值salt等信息。由於ECB模式不使用初始向量,所以這里沒有iv值的信息。

明確這些參數的含義,各參數的使用要求,是設計應用程序加密功能所必需的。關於openssl本身的命令行參考,openssl文檔有詳盡的描述。需要中文的可以參閱趙春平所著《openssl編程》,這本書開放了電子文檔的下載,openssl命令行講解在該書的后面第三十二章。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM