OpenSSL :: Cipher :: CipherError·数据不是块长度的倍数

时间:2017-07-14 20:58:09

标签: ruby-on-rails ruby encryption cryptography blowfish

我正在使用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

任何人都知道为什么会偶尔发生这种情况?

0 个答案:

没有答案