我正致力于通过通用加密方案进行两个安全系统通话。我选择了AES,因为它似乎是一个安全的标准,但我没有嫁给它,只要我有双向加密。
以下是Go source和Ruby source简化到一个非常明确的示例,从命令行运行并查看差异。我输出字节码以便于字面比较。
我在两者中使用128位CFB,并且它们都没有填充,非常感谢任何帮助!
答案 0 :(得分:2)
您在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]