在Rails中使用AES-128加加密模式CBC与PKCS5加密字符串



我正试图在我的网站上实现一个第三方应用程序的功能,该应用程序请求我使用以下方式加密字符串:

site expects the email to be encrypted using the AES algorithm with your 128 bit secret key. The cipher mode is CBC with PKCS5 padding. The initialization vector is 16 bytes of 00.

  1. 使用你的秘密密钥,使用前16个字节生成一个128位的秘密密钥。
  2. 读取以"UTF-8"编码的纯文本电子邮件的字节。
  3. 使用AES算法和128位密钥加密电子邮件。确保使用CBC模式和PKCS5填充。
  4. 将加密字节转换为十六进制字符串。

我创建了一个方法,并开始尝试解决这个问题,但还没有走得太远。

  def elink
    @base = ENV['API_TOKEN'][0..15]
    OpenSSL::Digest::SHA1.hexdigest((@base).to_s)
  end

如有任何帮助,不胜感激。

Update:从阅读API信息来看,看起来Ruby中的Cipher已被弃用,我确实应该使用Digest。我还发现了一些关于OpenSSL PKSC5的信息,但我真的不明白如何为手头的任务拼凑这些信息。

也看了一下SO,在这里和这里发现了一些QAs,但是再次…

只需使用cipher = OpenSSL::Cipher.new 'AES-128-CBC',然后设置密钥和包含16个零字节的IV。这应该已经使用pkcs# 5/pkcs# 7兼容的填充。

摘要不是一种加密方法,它肯定与AES-128不兼容。

最新更新