我正在努力让两个安全系统通过通用加密方案进行通信。我选择了 AES,因为它看起来是一个安全标准,但我并没有接受它,只要我有双向加密。
这是Go source和 Ruby source简化为一个非常清晰的示例,可以从命令行运行并查看差异。我输出字节码是为了更容易进行文字比较。
我在两者中都使用 128 位 CFB,并且它们似乎都没有填充,非常感谢任何帮助!
最佳答案
您在 Ruby 代码中传递了错误的 key 大小。它应该是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]
关于ruby - 使用 Golang 和 Ruby 加密和解密 AES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22591778/