ruby AES加密解密

  最近和京東合做作一個項目,在接口對接傳遞參數時,參數須要經過AES加密解密。git

原本想到用gem 'aescrypt'處理,可是aescrypt的編碼方式用的base64,而京東那邊用的是16進制。因此就本身寫了加密解密方法。
github

AES 加密算法

def aes_encrypt(key, encrypted_string)
    aes = OpenSSL::Cipher::Cipher.new("AES-128-ECB")
    aes.encrypt
    aes.key = key
    txt = aes.update(encrypted_string) << aes.final
    txt.unpack('H*')[0].upcase
end

  

AES 解密ruby

def aes_dicrypt(key, dicrypted_string)
    aes = OpenSSL::Cipher::Cipher.new("AES-128-ECB")
    aes.decrypt
    aes.key = key
    aes.update([dicrypted_string].pack('H*')) << aes.final
end

  

其中參數key,是aes加密解密的祕鑰。encrypted_string和dicrypted_string是加密和解密字符串。編碼

「AES-128-ECB」是祕鑰長度算法模式,祕鑰長度有128和256兩種。算法模式有"CBC", "ECB","CFB","OFB"能夠選擇。加密

相關文章
相關標籤/搜索