總覺得我是不是以前也寫過這類筆記? 查了下快十年前 XD 用的是 openssl des3
由於工作中太常接觸 AES-128 加解密了,想要筆記一下方便未來查詢,而透過 openssl command 也方便交叉驗證程式是否正確,這次就仿 openssl des3 筆記:
明文:
% cat /tmp/input.txtHello World% md5 /tmp/input.txtMD5 (/tmp/input.txt) = e59ff97941044f85df5297e1c302d260% hexdump /tmp/input.txt0000000 6548 6c6c 206f 6f57 6c72 0a64000000c
產生加解密的 Key 值:
% dd if=/dev/urandom of=/tmp/password bs=1 count=3232+0 records in32+0 records out32 bytes transferred in 0.000303 secs (105611 bytes/sec)% md5 /tmp/passwordMD5 (/tmp/password) = 92eeb8e1bec70865650e1f96e5cd1819% hexdump /tmp/password0000000 cf23 5006 70d0 bf1e 0e9e a70c 10f0 ecd60000010 dc01 e156 d818 bff2 2e3e f859 28c9 a91d0000020% hexdump -v -e '/1 "%02x"' -n 16 /tmp/password23cf0650d0701ebf9e0e0ca7f010d6ec
產生加解密的 IV 值(其實同 Key 值產生即可,目前改用另一招):
% date | md55d6476c85eca3ec56fda4913f5578b83
使用 OpenSSL AES-128 加密:
% openssl enc -e -aes-128-cbc -in /tmp/input.txt -out /tmp/encrypt.txt -K 23cf0650d0701ebf9e0e0ca7f010d6ec -iv 5d6476c85eca3ec56fda4913f5578b83% hexdump /tmp/encrypt.txt0000000 c3d4 cb0a d845 182c 319e afdf b29c c4840000010
使用 OpenSSL AES-128 解密:
% openssl enc -d -aes-128-cbc -in /tmp/encrypt.txt -out /tmp/output.txt -K 23cf0650d0701ebf9e0e0ca7f010d6ec -iv 5d6476c85eca3ec56fda4913f5578b83% md5 /tmp/output.txtMD5 (/tmp/output.txt) = e59ff97941044f85df5297e1c302d260% cat /tmp/output.txtHello World
工作上很容易 Key 值是一個 32 bytes 的 binary 檔案,且不加入輸出至檔案的方式,可以立即看解密的內容,連續動作如下:
% openssl enc -d -aes-128-cbc -in /tmp/encrypt.txt -K $(hexdump -v -e '/1 "%02x"' -n 16 /tmp/password) -iv 5d6476c85eca3ec56fda4913f5578b83Hello World
收工
沒有留言:
張貼留言