文档章节

AzDG可逆加密演算法 For Ruby

e
 eddie
发布于 2014/06/02 23:38
字数 183
阅读 141
收藏 3

╮╯▂╰╭ AzDG再度登板

#/*Sava as AzDG.rb*/
#!/usr/bin/env ruby
# encoding: UTF-8
require 'digest'
require 'base64'
class AzDG
    attr_accessor :cipher    
    def initialize(cipher = "Private key")
        @cipherHash = Digest::MD5.hexdigest(cipher)
    end    
    def cipherEncode(inputData)   
        outData = Array.new(inputData.length)
        for i in (0..inputData.length-1) 
            outData[i] = (inputData[i] ^ @cipherHash[i%32].ord)
        end    
        return outData
    end
    def Encrypt(inputData)  
        noise = Digest::MD5.hexdigest(Time.new.strftime("%Y-%m-%d %H:%M:%S"))
        aryInputData = inputData.bytes.to_a        
        outData = Array.new(aryInputData.length * 2)        
        for i in (0..aryInputData.length-1) 
            outData[(i*2)] = noise[i%32].ord     
            outData[(i*2)+1] = aryInputData[i] ^ noise[i%32].ord 
        end        
        return Base64.encode64(cipherEncode(outData).pack('c*'))
    end    
    def Decrypt(inputData) 
        decodeSourceText = cipherEncode(Base64.decode64(inputData).bytes.to_a)
        outData = Array.new()
        i = 0           
        while i < decodeSourceText.length do 
            outData.push(decodeSourceText[i].ord ^ decodeSourceText[i+1].ord)    
            i += 2        
        end
        return outData.pack('c*').force_encoding('UTF-8')
    endend

 使用方式 

require './AzDG'
azdg = AzDG.new
var  = azdg.Encrypt("張學友")
puts "#{var}"
puts azdg.Decrypt(var)


© 著作权归作者所有

共有 人打赏支持
e
粉丝 1
博文 7
码字总数 2328
作品 0
台北
CTO(技术副总裁)
AzDG可逆加密演算法 for Dart

Google 2011 年時所推出的語言,據說是要取代現有的Javascript,先前已有稍為看了一下,因為沒有專案在使用這門語言,所以就沒有進一步的瞭解, 據聞公司明年的合作夥伴採用Dart來作為專案的...

eddie
2013/12/27
0
0
PHP常用的对称加密

加密算法的分类 1)不可逆加密算法 2)可逆加密算法 可逆加密算法又分为两大类:“对称式”和“非对称式”。 DES/AES是可逆对称的。 /** * 常用对称加密算法类 * 支持密钥:64/128/256 bit(...

xinson
2016/04/20
61
0
PHP常用的非对称加密

加密算法的分类 1)不可逆加密算法 2)可逆加密算法 可逆加密算法又分为两大类:“对称式”和“非对称式”。 openssl 实现RSA非对称加密 class Rsa{ //私匙 private $privKey = '-----BEGIN...

xinson
2016/04/20
401
0
循序渐进学.Net Core Web Api开发系列【16】:应用安全续-加密与解密

系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一、概述 应用安全除了用户权限认证外,还要考虑到数据安全,传...

seabluescn
07/25
0
0
SQL Server - 请问数据库字段加密问题

原发问问题: 老师您好: 我有一个表格的某一个字段要加密,如员工档的薪资金额及员工姓名, 这两个字段要加密,让其它人员从 ENTERPRISE MANAGER 之中开起的表格看到的内容是一堆乱码,但我在...

章立民
2007/05/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java中的移位运算符

国庆给自己放了个小长期二十几天,回来继续更新专栏 上一篇文章我们说了Java里的二进制,知道了计算机是以0和1来处理数据的,在阅读源码的过程中,经常会看到这些符号<< ,>>,>>>,这些符号...

SuShine
18分钟前
2
0
linux版QQ

下载地址在这 http://yun.tzmm.com.cn/index.php/s/XRbfi6aOIjv5gwj Appimage包不用做什么别的处理,安装啥的都不需要。。找到文件所在目录,终端中修改一下文件的权限 chmod 777 QQ-2017112...

悲催的古灵武士
23分钟前
1
0
咕泡-MyBatis 实用篇作业

1. Mapper在spring管理下其实是单例,为什么可以是一个单例? 首先,mapper 内部不包含 成员字段,无状态单例是安全的 另外,一直存在不用每次调用都new 一个新实例 2. MyBatis在Spring集成下...

职业搬砖20年
26分钟前
2
0
MQTT协议的初浅认识之连接建立

MQTT百科 MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布...

亚林瓜子
43分钟前
1
0
OpenStack部署都有哪些方式

对于每一个刚接触到OpenStack的新人而言,安装无疑是最困难的,同时这也客观上提高了大家学习OpenStack云计算的技术门槛。想一想,自己3年前网上偶然接触到OpenStack时,一头茫然,手动搭建一...

tututu_jiang
43分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部