标签归档:ruby

使用ruby的AES加密、解密

ruby的AES加密使用openssl库来操作,第三方的库可以使用fast-aes和aes。

我这里没有用第三方的。

require 'openssl'
require 'base64'
 
text='{"message":"对不起,你没有此权限,无法操作"}'
key="0315b6e6e482ff7e"
iv="44b5618f44f1dfa9"
alg = "AES-128-CBC" 
 
puts %(clear text:    "#{text}")  
puts %(symmetric key: "#{key}")  
puts %(initialization vector: "#{iv}")  
puts %(cipher alg:    "#{alg}")  
 
puts "--Encrypting--"  
des = OpenSSL::Cipher::Cipher.new(alg)  
des.encrypt  
des.key = key  
des.iv = iv  
cipher =  des.update(text)  
cipher << des.final  
str=Base64.encode64(cipher)
puts %(encrypted text: #{str})  
 
puts "--Decrypting--"  
des = OpenSSL::Cipher::Cipher.new(alg)  
des.decrypt  
des.key = key  
des.iv = iv  
out =  des.update(Base64.decode64(str))  
out << des.final  
puts %(decrypted text: "#{out}")  
puts