【问题标题】:Encrypt and Decrypt AES with Golang and Ruby使用 Golang 和 Ruby 加密和解密 AES
【发布时间】:2014-04-30 18:27:56
【问题描述】:

我正在努力让两个安全系统通过一个通用的加密方案进行通信。我选择了 AES,因为它似乎是一个安全的标准,但我并没有接受它,只要我有双向加密。

这里是 Go sourceRuby source 简化为一个非常清晰的示例,可以从命令行运行并查看差异。我正在输出字节码以便于进行文字比较。

我在两者中都使用了 128 位 CFB,而且它们似乎都没有填充,非常感谢任何帮助!

【问题讨论】:

  • 请将相关代码粘贴到您的帖子中

标签: ruby encryption cryptography go aes


【解决方案1】:

您在 Ruby 代码中传递了错误的密钥大小。应该是 192。(因为key.size 是 24 字节 == 192 位)

cipher = OpenSSL::Cipher::AES.new(192, :CFB)
cipher.encrypt
cipher.key = key
cipher.iv = iv
encrypted = cipher.update(input) + cipher.final()
puts "Output:     [" + encrypted.bytes.join(" ") + "]"

输出:

Output:     [155 79 127 80 31 163 142 111 13 211 221 163 219 248]

【讨论】:

  • 块大小与密钥大小不同。 AES 仅支持 128 位块。
  • @ntoskrnl,啊,我的错。我将key size 拼错为block size。谢谢你的意见。我根据你的评论更新了这个词。
猜你喜欢
  • 2021-09-03
  • 2016-06-19
  • 1970-01-01
  • 1970-01-01
  • 2019-08-13
  • 2015-01-20
  • 2014-01-05
  • 2019-01-06
  • 1970-01-01
相关资源
最近更新 更多