【发布时间】:2011-01-03 20:29:09
【问题描述】:
我的 RoR 服务器接收到一个字符串,该字符串在 C++ 应用程序中使用带有 base64 编码的 des3 加密
密码对象是这样创建的:
cipher = OpenSSL::Cipher::Cipher::new("des3")
cipher.key = key_str
cipher.iv = iv_str
key_str 和 iv_str:是加密算法的密钥和初始化向量的字符串表示。对于 RoR 和 C++ 应用程序,它们是相同的。
RoR端的代码如下:
result = ""
result << cipher.update( Base64.decode64(message) )
result << cipher.final
执行最后一行代码后,我得到一个异常
OpenSSL::CipherError (bad decrypt)
这里有什么问题?有什么想法吗?
【问题讨论】:
-
最后一行?什么是可变芯片?一个 AR 对象?还有最后的方法是什么?
-
正如本教程所说,olabini.com/blog/2008/08/ruby-security-quick-guide“最后你需要调用 final 来获取最后生成的密文”我想,这个方法类似于流的刷新方法。
标签: ruby-on-rails ruby encryption encoding openssl