zoukankan      html  css  js  c++  java
  • ruby中rsa加密加签以及md5、hash加密以及des加解密方法整理

    #RSA公钥加密,加签;des 不同加密算法的加密解密方法
    # encoding:utf-8
    # author:anion
    require 'openssl'
    require 'base64'
    require 'digest'

    #一 rsa加签 base64编码
      def rsa_sign data, key
      rkey =OpenSSL::PKey::RSA.new key
      sign= rkey.sign('sha1',data)
      signature = Base64.encode64(sign)
      signature.gsub!(" ",'')
     end

      #二 rsa加密 并编码

    def rsa_encrypt(public_key,data)
    rsa= OpenSSL::PKey::RSA.new(Base64.decode64(public_key)) #是否需要decode依赖传的数据
    #rsa=OpenSSL::Pkey::RSA.new(File.read('./public_key.pem'))
    rsa_data = rsa.public_encrypt(data)

    result =Base64.encode64(rsa_data)
    result.gsub!(" ",'')
    end

    #HSA加密方法整理
    def digest_sha?(data,type)

    case type
    when 1
    Digest::SHA1.hexdigest(data)
    when 256
    Digest::SHA256.hexdigest(data)
    when 384
    Digest::SHA384.hexdigest(data)
    when 512
    Digest::SHA512.hexdigest(data)
    end
    end
     
    ALG='DES-EDE3'   # OpenSSL::Cipher::Cipher.ciphers : 可以获取ruby中所有支持的加解密
    def des3_encrypt(des_key, des_text)
    des =OpenSSL::Cipher::Cipher.new(ALG)
    des.encrypt
    des.key=des_key
    result = des.update(des_text)
    result << des.final
    data=Base64.encode64(result)
    data.gsub!(" ",'')
    end

    def des3_decrypt(des_key,des_text)
    des =OpenSSL::Cipher::Cipher.new(ALG)
    des.decrypt
    des.padding=7 # set pckspadding1--7
    des.key=des_key
    text = Base64.decode64(des_text)
    result = des.update(text).gsub(/ || /,'')
    result << des.final
    result
    end

    require 'digest/md5'
    #MD5加密
    Digest::MD5.hexdigest(data)
     
  • 相关阅读:
    微信抢红包算法备注
    APP测试-drozer安装和使用
    APP测试--应用签名信息检测
    绕过CDN获得网站真实IP
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xd5 in position 9: ordinal not in range(128)
    检查APP 数据库.xml文件
    APP本地数据库安全
    APP重新打包签名
    APP完整性检测
    dex2jar和jd-gui联合使用查看代码是否经过混淆处理或者加壳
  • 原文地址:https://www.cnblogs.com/anion-blogs/p/6306583.html
Copyright © 2011-2022 走看看