Sha256: 030b0ad72d6fc8b93a81847f1a694fa6344bb6b06bebb84b6955196e92c15ae4
Contents?: true
Size: 744 Bytes
Versions: 2
Compression:
Stored size: 744 Bytes
Contents
require 'digest/md5' module NeotelisPay module Utils class Crypt def self.crypt_md5(source_msg, key) k_ipad = Array.new(64, 54) k_opad = Array.new(64, 92) key_arr = key.unpack('c*') for i in 0..(key_arr.size - 1) k_ipad[i] = key_arr[i] ^ 54 k_opad[i] = key_arr[i] ^ 92 end k_ipad_str = k_ipad.pack('c*') k_opad_str = k_opad.pack('c*') md1 = '' md2 = '' #取签名原文和空值进行一次MD5签名 md1 = Digest::MD5.digest(k_ipad_str + source_msg) #取第一次签名后的值和商户秘钥再次MD5签名 md2 = Digest::MD5.hexdigest(k_opad_str + md1) return md1, md2 end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
neotelis_pay-0.1.1 | lib/neotelis_pay/utils/crypt.rb |
neotelis_pay-0.1.0 | lib/neotelis_pay/utils/crypt.rb |