红宝石中的错误解密错误

Posted

技术标签:

【中文标题】红宝石中的错误解密错误【英文标题】:bad decrypt error in ruby 【发布时间】:2012-09-12 13:49:28 【问题描述】:

在执行cipher.final 时,它显示bad decrypt 错误。我试图找出问题。但是,我找不到。你能说出我的代码有什么问题吗?

这是我的代码:

require 'openssl'
require 'base64'
require 'hex_string'

 result_h ="4fcd6b1ac843a2f8bf13f2e53dd5c1544fcd6b1ac843a2f8"
 key = result_h.to_byte_string

encrypt_str="79994A6EF73DA76C";
cipher = OpenSSL::Cipher.new("DES-EDE3-CBC")
cipher.decrypt
cipher.key = key
data = encrypt_str.to_byte_string
res = cipher.update( data )
res << cipher.final
result_h= res.unpack("H*")[0]
puts result_h.inspect;

错误是:

in `final': bad decrypt (OpenSSL::Cipher::CipherError)

【问题讨论】:

我也是这样的情况。 【参考方案1】:

我遇到了类似的问题。在具体例子中:

require 'openssl'
require 'base64'
require 'hex_string'

 result_h ="4fcd6b1ac843a2f8bf13f2e53dd5c1544fcd6b1ac843a2f8"
 key = result_h.to_byte_string

encrypt_str="79994A6EF73DA76C";
cipher = OpenSSL::Cipher.new("DES-EDE3-CBC")
cipher.decrypt
cipher.padding = 0
cipher.key = key
data = encrypt_str.to_byte_string
res = cipher.update( data )
res << cipher.final
result_h= res.unpack("H*")[0]
puts result_h.inspect;

=> "0befe932733d76e6"

如果你添加 cipher.padding = 0 它会给你一个结果。

【讨论】:

以上是关于红宝石中的错误解密错误的主要内容,如果未能解决你的问题,请参考以下文章

红宝石openssl.so:14001错误

ruby 错误的红宝石代码

红宝石“错误恢复下一个”功能

红宝石。 (健康)状况) ?返回:下一个。返回错误

Lightspeed OAuth CSRF 和 redirect_uri 错误(红宝石)

Rails:红宝石在导轨上的未知属性错误