一个简单的Ruby可逆加密解密类
实现代码:
classDes require'openssl' require'base64' ALG='DES-EDE3-CBC' KEY="mZ4Wjs6L" DES_KEY="nZ4wJs6L" #加密 defencode(str) des=OpenSSL::Cipher::Cipher.new(ALG) des.pkcs5_keyivgen(KEY,DES_KEY) des.encrypt cipher=des.update(str) cipher<<des.final returnBase64.encode64(cipher)#Base64编码,才能保存到数据库 end #解密 defdecode(str) str=Base64.decode64(str) des=OpenSSL::Cipher::Cipher.new(ALG) des.pkcs5_keyivgen(KEY,DES_KEY) des.decrypt des.update(str)+des.final end end
测试代码:
require'pp' des=Des.new str='1234567890123456' pp'=====encrypt=====' str=des.encode(str) ppstr pp '=====decrypt=====' ppdes.decode(str)