如何在Ruby中解密使用des命令加密的文件?

如何在Ruby中解密使用des命令加密的文件?,ruby,encryption,openssl,des,Ruby,Encryption,Openssl,Des,我需要解密使用此命令加密的文件: des -E -u -k "some key" file.in file.out.enc Ruby中的解密代码: def decrypt(key) cipher = OpenSSL::Cipher.new(‘des’).decrypt cipher.key = key File.open(‘file.out’, ‘wb’) do |outf| decrypted = cipher.update(File.read(‘file.in.enc

我需要解密使用此命令加密的文件:

des -E -u -k "some key" file.in file.out.enc
Ruby中的解密代码:

def decrypt(key)
  cipher = OpenSSL::Cipher.new(‘des’).decrypt
  cipher.key = key

  File.open(‘file.out’, ‘wb’) do |outf|
    decrypted = cipher.update(File.read(‘file.in.enc’)) + cipher.final
    outf.write(decrypted)
  end
end

当我运行上面的代码时,我得到了错误的最终块长度错误。我还尝试使用openssl命令行工具进行解密,但得到了一个错误的幻数。有什么建议吗?

尝试将模式从
CBC
切换到
ECB
,例如使用
OpenSSL::Cipher.new('DES-ECB')

如果您通过查看
OpenSSL::Cipher.ciphers
来检查Ruby安装支持哪些密码,您也会找到可用模式的列表