【问题标题】:How to get AES-128-GCM with Ruby 2.3.1如何使用 Ruby 2.3.1 获取 AES-128-GCM
【发布时间】:2017-04-17 18:40:10
【问题描述】:

我正在使用 OpenSSL 1.0.2k 和 Ruby 2.3.1,它支持“aes-128-gcm”而不是“AES-128-GCM”算法。与 OpenSSL 1.0.2k 捆绑在一起时,Ruby 2.4.0 支持这两者。

两者之间的区别究竟在哪里?区分大小写重要吗?

我找不到答案。如何使用 Ruby 2.3.1 获得 AES-128-GCM?

【问题讨论】:

标签: ruby encryption openssl aes aes-gcm


【解决方案1】:

Ruby 的 2.3.1 OpenSSL 文档在“Instantiating a Cipher”中说:

创建密码的最通用方法如下

cipher = OpenSSL::Cipher.new('<name>-<key length>-<mode>')

即,由各个组件名称、键长度和模式的连字符连接组成的字符串。 可以使用全大写或全小写字符串,例如:

cipher = OpenSSL::Cipher.new('AES-128-CBC')

(添加的重点是我的。)

换句话说,'AES-128-GCM''aes-128-gcm' 是可以接受的。

【讨论】:

  • 感谢您的快速回复。我查看了 OpenSSL(Ruby 2.3.1) 的文档,当我尝试实例化“AES-128-GCM”(OpenSSL::Cipher.new('AES-128-GCM')) 时,我得到 RuntimeError: unsupported cipher algorithm (AES-128-GCM)乙>。当通过 'aes-128-gcm' (OpenSSL::Cipher.new('aes-128-gcm')) 进行实例化时,它完全可以正常工作,所以我的问题是两者的区别到底在哪里?
  • 它正在使用OpenSSL::Cipher::AES.new(128, :GCM)。谢谢。
猜你喜欢
  • 2013-07-17
  • 1970-01-01
  • 2016-12-19
  • 1970-01-01
  • 1970-01-01
  • 2021-12-21
  • 2020-12-21
  • 2019-02-15
  • 1970-01-01
相关资源
最近更新 更多