網上找了下openssl 加解密 aes-128-cbc相關命令, 發(fā)現(xiàn)都比較含糊, 這里是摸索出的一個aes-12b-cbc加解密的實例.
- 將要加密的內容輸入到plain.txt
echo "1234567890abc" > plain.txt
- 使用openssl加密. -p 表示打印出加密用的salt, key, iv. salt就是所謂的加鹽, 防止同樣的內容產生同樣的加密數(shù)據(jù). iv和key是openssl 的cbc模式需要的參數(shù). 關于aes加密, 詳情可見漫畫:什么是 AES 算法拉岁?,漫畫:AES 算法的底層原理, AES加密算法動畫演示.
openssl enc -aes-128-cbc -in plain.txt -out encrypt.txt -iv f123 -K 1223 -p
salt=E0DEB1EAFE7F0000
key=12230000000000000000000000000000
iv =F1230000000000000000000000000000
- 輸出加密前和加密后內容的十六進制. 這里使用xxd和hexdump都可以.
xxd plain.txt
00000000: 3132 3334 3536 3738 3930 6162 630a 1234567890abc.
xxd encrypt.txt
00000000: c5af 18cb ddee 9923 0374 6a21 9bb6 3f99 .......#.tj!..?.
- 解密加密后的數(shù)據(jù)
openssl aes-128-cbc -d -in encrypt.txt -out encrypt_decrypt.txt -S E0DEB1EAFE7F0000 -iv F1230000000000000000000000000000 -K 12230000000000000000000000000000
- -S salt Salt to use, specified as a hexidecimal string
- -salt Use a salt in the key derivation routines (default)
- 查看解密后的數(shù)據(jù)和原始數(shù)據(jù)是否一致.
xxd encrypt_decrypt.txt
00000000: 3132 3334 3536 3738 3930 6162 630a 1234567890abc.