我正面临着一个问题,我无法在我的Mac上解密用Ruby加密的文件.
使用以下Ruby代码,我使用了AES加密对一个压缩文件进行了加密:
require 'openssl'
key = OpenSSL::Cipher.new('AES-256-CBC').random_key
iv = OpenSSL::Cipher.new('AES-256-CBC').random_iv
key_hex = key.unpack('H*').first
iv_hex = iv.unpack('H*').first
puts OpenSSL::OPENSSL_LIBRARY_VERSION # OpenSSL 1.1.1t 7 Feb 2023
puts "Key: #{key_hex}"
puts "IV: #{iv_hex}"
cipher = OpenSSL::Cipher.new('AES-256-CBC').encrypt
cipher.key = key
cipher.iv = iv
binary = cipher.update(data) + cipher.final
binary.unpack1('H*')
随后,我try 使用Mac OS终端解密创建的二进制文件:
$ openssl version
OpenSSL 1.1.1s 1 Nov 2022
$ openssl enc -aes-256-cbc -d -K <key_hex> -iv <iv_hex> -in encrypted > decrypted.zip
但是,出现了一个"错误解密"错误,我无法解密它:
bad decrypt
4705359360:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:crypto/evp/evp_enc.c:612:
请告诉我解决方案!