Ruby Aes ECB模式 秘钥长度256 无填充模式的加解密方法

Jackey 其他 889 次浏览 , 2条评论
#!/usr/bin/ruby

require 'openssl'

class AesEcb256
  def encrypt(key, data, padding)
    aes = OpenSSL::Cipher.new("AES-256-ECB")
    aes.encrypt
    aes.key = key
    aes.padding = padding

    length = 16
    count = data.length
    if count < length
      add = length - count
      data = data + ("\0" * add)
    else
      if count > length
        add = length - (count % length)
        data = data + ("\0" * add)
      end
    end
    puts "data = #{data}"
    txt = aes.update(data) + aes.final
    puts "txt=:#{txt}"
    txt.unpack('H*')[0]
  end

  def decrypt(key, data, padding)
    aes = OpenSSL::Cipher.new("AES-256-ECB")
    aes.decrypt
    aes.key = key
    aes.padding = padding
    txt = aes.update([data].pack('H*')) << aes.final
    txt.gsub("\0", "")
  end
end

# 使用方法
key = "7b53919f0c8481dcc22125d2783acd6f"

aes = AesEcb256.new
m = aes.encrypt(key, "11.25", 0)
p m

message = aes.decrypt(key, m, 0)
p message

 

2 条评论

  1. 夏日博客 2023年3月4日 下午6:52 回复

    这是一个公共类吧。

  2. 上海网站建设 2023年6月26日 下午11:04 回复

    感谢分享

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Go