脚本专栏 
首页 > 脚本专栏 > 浏览文章

一个简单的Ruby可逆加密解密类

(编辑:jimmy 日期: 2024/11/16 浏览:3 次 )

实现代码:

复制代码 代码如下:
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编码,才能保存到数据库 
  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 

测试代码:

 复制代码 代码如下:require 'pp' 
 des = Des.new 
 str = '1234567890123456' 
 pp '=====encrypt=====' 
 str = des.encode(str) 
 pp str 

 pp  '=====decrypt=====' 
 pp des.decode(str)

上一篇:Ruby简明教程之循环语句介绍
下一篇:21个你应该知道的Ruby编程技巧
一句话新闻
微软与英特尔等合作伙伴联合定义“AI PC”:键盘需配有Copilot物理按键
几个月来,英特尔、微软、AMD和其它厂商都在共同推动“AI PC”的想法,朝着更多的AI功能迈进。在近日,英特尔在台北举行的开发者活动中,也宣布了关于AI PC加速计划、新的PC开发者计划和独立硬件供应商计划。
在此次发布会上,英特尔还发布了全新的全新的酷睿Ultra Meteor Lake NUC开发套件,以及联合微软等合作伙伴联合定义“AI PC”的定义标准。