2014-05-13 132 views
2

我试图加密/解密一个字符串,并且在解密时我总是收到一个错误。OpenSSL加密/解密一个字符串

set OPENSSL=C:\Projects\WinTools\Tools\OpenSSL\x86\bin 
set Key=748FBA160C30A2624859A44A1830C061434C76E3278AFB75330C8CA2CF1F5184 
set IV=84DB32005B226D7F9964B758C9157538 
set Salt=96F697CA35CED67A 

我加密如下:

echo "Test is test" | %OPENSSL%\openssl enc -base64 -e -aes-256-cbc -S %Salt% -K %Key% -iv %IV% 

对其进行解密:

echo "7nO8yVKleLvbSneIi7qr82oSuiwRtnt5Iqqoynidl90=" | %OPENSSL%\openssl enc -base64 -d -aes-256-cbc -S %Salt% -K %Key% -iv %IV% 

解密时,我得到的错误是:

警告:不能打开配置文件: /usr/local/ssl/openssl.cnf 坏解密 4124:错误:0606506D:数字en velope例程:EVP_DecryptFinal_ex:错误的最终块长度:。\ crypto \ evp \ evp_enc.c:532:

回答

3

更新:我想通了这个问题。我在双引号之间加密了加密数据。当我删除它,像这样运行:

echo 7nO8yVKleLvbSneIi7qr82oSuiwRtnt5Iqqoynidl90= | %OPENSSL%\openssl enc -base64 -d -aes-256-cbc -S %Salt% -salt -K %Key% -iv %IV% 

它解密完美