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

所属分类: 脚本专栏 / ruby专题 阅读数: 936
收藏 0 赞 0 分享

实现代码:

复制代码 代码如下:

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中的字符串编写示例

这篇文章主要介绍了Ruby中的字符串编写示例,作者给出了相关编程风格的一些建议,需要的朋友可以参考下
收藏 0 赞 0 分享

浅析Ruby中的正则表达式的使用

这篇文章主要介绍了浅析Ruby中的正则表达式的使用,作者根据Ruby对正则表达式的支持提出了其中一些需要注意的地方,需要的朋友可以参考下
收藏 0 赞 0 分享

Ruby中百分号和字面值的使用示例

这篇文章主要介绍了Ruby中百分号和字面值的使用示例,作者给出了相关编程风格上的一些建议,需要的朋友可以参考下
收藏 0 赞 0 分享

详解Ruby中的方法概念

这篇文章主要介绍了详解Ruby中的方法概念,包括方法的自定义和返回值等基础知识,需要的朋友可以参考下
收藏 0 赞 0 分享

详解Ruby中的块的知识

这篇文章主要介绍了详解Ruby中的块的知识,包括yield语句和begin/end块等知识点,需要的朋友可以参考下
收藏 0 赞 0 分享

介绍Ruby中的模块与混合类型的相关知识

这篇文章主要介绍了Ruby中的模块与混合类型的相关知识,包括平常人们常说的多态与继承等相关知识点,需要的朋友可以参考下
收藏 0 赞 0 分享

Ruby中操作字符串的一些基本方法

这篇文章主要介绍了Ruby中操作字符串的一些基本方法,包括对字符串的压缩和解压缩等处理,需要的朋友可以参考下
收藏 0 赞 0 分享

Ruby中数组的一些相关使用方法

这篇文章主要介绍了Ruby中数组的一些相关使用方法,是Ruby学习当中的基础知识,需要的朋友可以参考下
收藏 0 赞 0 分享

Ruby中关于hash的基本使用方法

这篇文章主要介绍了Ruby中关于hash的基本使用方法,包括哈希的创建和一些内置方法的使用,需要的朋友可以参考下
收藏 0 赞 0 分享

Ruby中处理时间的一些基本操作

这篇文章主要介绍了Ruby中处理时间的一些基本操作,主要是利用到了Ruby中强大的Time模块,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多