【发布时间】:2016-08-19 07:39:16
【问题描述】:
source = ... # encrypted string - Base64.encode64(string)
cipher = OpenSSL::Cipher::Cipher.new('AES-128-ECB')
cipher.decrypt
cipher.key = ['YOUR_CHANNEL_SECRET'].pack('H*')
decoded = Base64.decode64(source)
decrypted = cipher.update(decoded) + cipher.final
对于 YOUR_CHANNEL_SECRET 我将我的密钥转换为十六进制字符串
参考 - https://developers.line.me/in_app_web/api-reference#get_token_access_token
我在 cipher.final 上遇到错误,我不知道为什么会出现这个错误以及解决方案是什么?
我遵循参考链接中定义的相同但仍然出现错误。
【问题讨论】:
-
您的代码看起来不错。问题是加密数据的长度应该是 16 字节的倍数,而事实并非如此。要么你在尝试解密数据之前以某种方式破坏了数据,要么在你收到数据时它是错误的。
标签: ruby-on-rails ruby ruby-on-rails-4 openssl caesar-cipher