openssl enc -d -p -aes-128-cbc -K 25683749789abcdeffedcba987654321 -iv 00000000000000000000000000000000 -nosalt -nopad -out 17_des.txt -in test17.txt
关于 -nopad,如果是加密的时候,表示,如果文件长度不够16整数倍数的话,则会报错。
openssl enc -e -p -aes-128-cbc -K 25683749789abcdeffedcba987654321 -iv 00000000000000000000000000000000 -nosalt -nopad -in input/1.txt -out test19.txt
key=25683749789ABCDEFFEDCBA987654321
iv =00000000000000000000000000000000
bad decrypt
140629442027968:error:0607F08A:digital envelope routines:EVP_EncryptFinal_ex:data not multiple of block length:../crypto/evp/evp_enc.c:419
如果没有这个参数,则会在最后的部分补上16-len%16个数据,数据==16-len%16【这个作为PAD指示】;然后开始加密,得到一个16整数倍的文件,
当反过来解密的时候,解密数据如果是16的整数倍,有这个参数表示PAD也作为有效数据据,解密出来的文件就是加了的数据,类似hexdump 19_des.txt
0000000 6568 6c6c 206f 6f77 6c72 3164 3332 3534
0000010 3736 0d0a 0d0d 0d0d 0d0d 0d0d 0d0d 0d0d。如果没有这个参数,则会将0d数据全部清空。
解密的时候数据必须为16的倍数。
否则
penssl enc -d -p -aes-128-cbc -K 25683749789abcdeffedcba987654321 -iv 00000000000000000000000000000000 -nosalt -nopad -out 19des -in test19.txt
key=25683749789ABCDEFFEDCBA987654321
iv =00000000000000000000000000000000
bad decrypt
140107304858048:error:0606508A:digital envelope routines:EVP_DecryptFinal_ex:data not multiple of block length:../crypto/evp/evp_enc.c:545:
xiongyf@ubuntu:~/work/2.4.0/platform/gxloader/tools/secure_tool/data_encryption$ openssl enc -d -p -aes-128-cbc -K 25683749789abcdeffedcba987654321 -iv 00000000000000000000000000000000 -nosalt -out 19des -in test19.txt
key=25683749789ABCDEFFEDCBA987654321
iv =00000000000000000000000000000000
bad decrypt
140488754790848:error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length:../crypto/evp/evp_enc.c:553: