#!/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 条评论
这是一个公共类吧。
感谢分享