注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Code@Pig Home

喜欢背着一袋Code傻笑的Pig .. 忧美.欢笑.记忆.忘却 .之. 角落

 
 
 

日志

 
 

[python] simple rc4 object  

2010-06-23 20:30:59|  分类: lang_python |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
依样画葫芦,搞了个简单的 RC4Object,方便自己使用。

------------------------------------------------------
class RC4Object:
    def __init__(self, key):
        self.reset(key)

    def reset(self, key):
        box = range(256)
        x   = 0
        for i in range(256):
            x = (x + box[i] + ord(key[i % len(key)])) % 256
            box[i], box[x] = box[x], box[i]

        self.box = box
        self.i = self.j = 0

    def crypt(self, data):
        out = []
        for ch in data:
            i = self.i
            j = self.j
            box = self.box

            i = (i + 1) % 256
            j = (j + box[i]) % 256
            box[i], box[j] = box[j], box[i]
            out.append(chr(ord(ch) ^ box[(box[i] + box[j]) % 256]))

            self.i = i
            self.j = j

        return ''.join(out)
------------------------------------------------------
e = RC4Object("mykey")
s = e.crypt("hello")

d = RC4Object("mykey")
s = d.crypt(s)

s = e.crypt("lalalala haha!")
s = d.crypt(s)
------------------------------------------------------

参考资料:
http://code.activestate.com/recipes/576736-rc4-arc4-arcfour-algorithm/
  评论这张
 
阅读(919)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017