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

Zada ·
更新时间:2024-09-21
· 508 次阅读

实现代码:

代码如下:
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 学习笔记(2) 类的基本使用ruby 标准类型总结Ruby字符串、条件、循环、数组、Hash、类基本操作笔记ruby 类常量 解析js 数组实现一个类似ruby的迭代器Ruby中的Proc类及Proc的类方法Proc.new的使用解析Ruby类实例变量、类实例方法和类变量、类方法的区别Ruby中实现把字符串转换为类的2种方法Ruby面向对象编程中类与方法的基础学习



加密解密 加密 Ruby

需要 登录 后方可回复, 如果你还没有账号请 注册新账号