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

时间:2019-06-24 17:12:23

标签: 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’)) + cipher.final
    outf.write(decrypted)
  end
end

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

1 个答案:

答案 0 :(得分:1)

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

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