当前位置 博文首页 > 一个简单的Ruby可逆加密解密类

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

    作者:admin 时间:2021-02-07 12:19

    实现代码:

    复制代码 代码如下:

    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)

    js
    下一篇:没有了