實現(xiàn)代碼:
復(fù)制代碼 代碼如下:
class Des
require 'openssl'
require 'base64'
ALG = 'DES-EDE3-CBC'
KEY = "mZ4Wjs6L"
DES_KEY = "nZ4wJs6L"
#加密
def encode(str)
des = OpenSSL::Cipher::Cipher.new(ALG)
des.pkcs5_keyivgen(KEY, DES_KEY)
des.encrypt
cipher = des.update(str)
cipher des.final
return Base64.encode64(cipher) #Base64編碼,才能保存到數(shù)據(jù)庫
end
#解密
def decode(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
測試代碼:
復(fù)制代碼 代碼如下:
require 'pp'
des = Des.new
str = '1234567890123456'
pp '=====encrypt====='
str = des.encode(str)
pp str
pp '=====decrypt====='
pp des.decode(str)
您可能感興趣的文章:- ruby 學(xué)習(xí)筆記(2) 類的基本使用
- ruby 標(biāo)準(zhǔn)類型總結(jié)
- Ruby字符串、條件、循環(huán)、數(shù)組、Hash、類基本操作筆記
- ruby 類常量 解析
- js 數(shù)組實現(xiàn)一個類似ruby的迭代器
- Ruby中的Proc類及Proc的類方法Proc.new的使用解析
- Ruby類實例變量、類實例方法和類變量、類方法的區(qū)別
- Ruby中實現(xiàn)把字符串轉(zhuǎn)換為類的2種方法
- Ruby面向?qū)ο缶幊讨蓄惻c方法的基礎(chǔ)學(xué)習(xí)