文档章节

AzDG可逆加密演算法 For Ruby

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

╮╯▂╰╭ 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

PHP常用的对称加密

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

xinson ⋅ 2016/04/20 ⋅ 0

PHP常用的非对称加密

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

xinson ⋅ 2016/04/20 ⋅ 0

SQL Server - 请问数据库字段加密问题

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

章立民 ⋅ 2007/05/22 ⋅ 0

关于MD5算法的问题。。

大家好!问题是这样的:我今天介绍MD5加密算法时,一个老师反驳我说MD5算法不算是加密算法,他的理由是加密算法都是可逆的,而MD5算法不是可逆的,所以不能叫做加密算法。我想请问大家,这个...

enjoy ⋅ 2011/07/24 ⋅ 16

php手机端接口加密

最近做手机项目,服务器端使用的是php,客户端分别有android版及ios版,在部分通讯环节需要对内容进行加密,RSA加密演算法是一种非对称加密演算法,能够较好达到要求,不过如果服务器架设htt...

范思哲思考者 ⋅ 2014/05/21 ⋅ 1

URL传递非常敏感数据安全问题

通过URL传递非常敏感的数据,除了使用SSL,还有其他的方法吗? 我想到的是可逆加密算法,客户端将数据加密后传送,服务器端再解密,但加密口令放在客户端貌似也不可靠哇.

开源中国总理 ⋅ 2014/10/27 ⋅ 4

关于AJAX加密传输的问题

目前 不可逆加密 MD5 可逆加密 非对称性加密 对称性加密 DES 3DES AES之类 那么我想问的是,一般我们web采用ajax调取数据时 是get post 连接后端脚本文件时,进行url加密 以防在firbug里被人...

kacc850 ⋅ 2016/08/11 ⋅ 10

收集的一些算法名称

一、Union-find。 二、Knuth-Morris-Pratt字符串匹配算法。 三、BFPRT 算法。 四、Quicksort(快速排序)。 五、Floyd-Warshall all-pairs最短路径算法。 六、绅士完全同态加密机制 七、Dep...

wankaiming ⋅ 2011/03/08 ⋅ 2

 commons-codec 加密算法

commons-codec包可以从apache下载,最新版是1.3 不可逆算法 1.MD5 String str = "abc"; DigestUtils.md5Hex(str); 附.net生成MD5的方法,生成内容跟java一致: String str = "abc"; FormsAut...

Canaan_ ⋅ 2016/07/09 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RabbitMQ学习以及与Spring的集成(三)

本文介绍RabbitMQ与Spring的简单集成以及消息的发送和接收。 在RabbitMQ的Spring配置文件中,首先需要增加命名空间。 xmlns:rabbit="http://www.springframework.org/schema/rabbit" 其次是模...

onedotdot ⋅ 22分钟前 ⋅ 0

JAVA实现仿微信红包分配规则

最近过年发红包拜年成为一种新的潮流,作为程序猿对算法的好奇远远要大于对红包的好奇,这里介绍一种自己想到的一种随机红包分配策略,还请大家多多指教。 算法介绍 一、红包金额限制 对于微...

小致dad ⋅ 34分钟前 ⋅ 0

Python 数电表格格式化 xlutils xlwt xlrd的使用

需要安装 xlutils xlwt xlrd 格式化前 格式化后 代码 先copy读取的表格,然后按照一定的规则修改,将昵称中的学号提取出来替换昵称即可 from xlrd import open_workbookfrom xlutils.copy ...

阿豪boy ⋅ 今天 ⋅ 0

面试题:使用rand5()生成rand7()

前言 读研究生这3 年,思维与本科相比变化挺大的,这几年除了看论文、设计方案,更重要的是学会注重先思考、再实现,感觉更加成熟吧,不再像个小P孩,人年轻时总会心高气傲。有1 道面试题:给...

初雪之音 ⋅ 今天 ⋅ 0

Docker Toolbox Looks like something went wrong

Docker Toolbox 重新安装后提示错误:Looks like something went wrong in step ´Checking if machine default exists´ 控制面板-->程序与应用-->启用或关闭windows功能:找到Hyper-V,如果处......

随你疯 ⋅ 今天 ⋅ 0

Guacamole 远程桌面

本文将Apache的guacamole服务的部署和应用,http://guacamole.apache.org/doc/gug/ 该链接下有全部相关知识的英文文档,如果水平ok,可以去这里仔细查看。 一、简介 Apache Guacamole 是无客...

千里明月 ⋅ 今天 ⋅ 0

nagios 安装

Nagios简介:监控网络并排除网络故障的工具:nagios,Ntop,OpenVAS,OCS,OSSIM等开源监控工具。 可以实现对网络上的服务器进行全面的监控,包括服务(apache、mysql、ntp、ftp、disk、qmail和h...

寰宇01 ⋅ 今天 ⋅ 0

AngularDart注意事项

默认情况下创建Dart项目应出现以下列表: 有时会因为不知明的原因导致列表项缺失: 此时可以通过以下步骤解决: 1.创建项目涉及到的包:stagehand 2.执行pub global activate stagehand或pub...

scooplol ⋅ 今天 ⋅ 0

Java Web如何操作Cookie的添加修改和删除

创建Cookie对象 Cookie cookie = new Cookie("id", "1"); 修改Cookie值 cookie.setValue("2"); 设置Cookie有效期和删除Cookie cookie.setMaxAge(24*60*60); // Cookie有效时间 co......

二营长意大利炮 ⋅ 今天 ⋅ 0

【每天一个JQuery特效】淡入淡出显示或隐藏窗口

我是JQuery新手爱好者,有时间就练练代码,防止手生,争取每天一个JQuery练习,在这个博客记录下学习的笔记。 本特效主要采用fadeIn()和fadeOut()方法显示淡入淡出的显示效果显示或隐藏元...

Rhymo-Wu ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部