我正在使用base64编码的blowfish加密双值第三方API数据。
使用给定的密钥,我正在解密它。
我的解密方法如下:
def blowfish_decode(base64_encoded_encrypted_value, md5key)
unpacked_key = [md5key].pack('H*')
encrypted_value = Base64.decode64(base64_encoded_encrypted_value)
# create cypher with no padding
cipher = OpenSSL::Cipher.new('bf-ecb').decrypt
cipher.key = unpacked_key
cipher.padding = 0
str = cipher.update(encrypted_value) << cipher.final
value = str.unpack("G").first
return value
end
我不时会收到以下错误:
OpenSSL::Cipher::CipherError · data not multiple of block length
任何人都知道为什么会偶尔发生这种情况?