python加密->RC4.py
来源:互联网 发布:青铜器 软件 编辑:程序博客网 时间:2024/04/30 02:58
#!/usr/bin/python# -*- coding: utf-8 -*-import sys,os,hashlib,time,base64class RC4: def __init__(self, keyStr, keyLen=16): self.keyLen = keyLen self.keyStr = keyStr or 'none_key' key = hashlib.md5(self.keyStr).hexdigest() #32位 self.keya = hashlib.md5(key[0:16]).hexdigest() self.keyb = hashlib.md5(key[16:32]).hexdigest() self.keyc = '' #加密 def encrypt(self, data): self.keyc = hashlib.md5(str(time.time())).hexdigest()[(32-self.keyLen):32] data = '0000000000' + hashlib.md5(data + self.keyb).hexdigest()[0:16] + data result = self.rc4Algorithm(data) return self.keyc + base64.b64encode(result) #解密 def decrypt(self, data): self.keyc = data[0:self.keyLen] data = base64.b64decode(data[self.keyLen:]) result = self.rc4Algorithm(data) if (result[0:10] == '0000000000' or int(result[0:10]) - int(time.time()) > 0) and result[10:26] == hashlib.md5(result[26:] + self.keyb).hexdigest()[0:16]: return result[26:] else: return None #rc4算法实现 def rc4Algorithm(self, data): dataLen = len(data) result = '' box = list(range(256)) randKey = [] cryptKey = self.keya + hashlib.md5(self.keya + self.keyc).hexdigest() keyLen = len(cryptKey) for i in xrange(255): randKey.append(ord(cryptKey[i % keyLen])) for i in xrange(255): j = 0 j = (j + box[i] + randKey[i]) % 256 tmp = box[i] box[i] = box[j] box[j] = tmp for i in xrange(dataLen): a = j = 0 a = (a + 1) % 256 j = (j + box[a]) % 256 tmp = box[a] box[a] = box[j] box[j] = tmp result += chr(ord(data[i]) ^ (box[(box[a] + box[j]) % 256])) return result#RC4测试if __name__=='__main__': rc4 = RC4('jianan') data = 'hello script, i love python and lua' print data str = rc4.encrypt(data) print str str = rc4.decrypt(str) print str# hello script, i love python and lua# e59f7b8e4271a596+DJzDKYfCh9tbh2cP22cMaGDFvGntU58QdR71Rd4dW4BwayP0g8E0IF2PcMPNz9zo9tmi8NhwyZwxSJj4Q==# hello script, i love python and lua
阅读全文
0 0
- python加密->RC4.py
- RC4 加密
- RC4加密
- RC4加密
- RC4加密
- RC4加密
- RC4加密
- python rc4
- 【Python】用base64和RC4给数据加密/解密
- RC4加密原理
- RC4加密解密
- php--rc4加密解密
- 加密(RC4,MD5)
- GoAgent设置RC4加密
- Java RC4 文件加密
- java RC4加密解密
- Rc4加密解密
- java RC4加密解密
- linux命令:文件搜索(locate、whereis、which、find、grep)
- Android加载WebView避免页面空白
- 智能照明灯具认证相关标准介绍
- 源码分析之-容器类-HashMap
- Sharding-JDBC使用问题记录
- python加密->RC4.py
- FPGA电源供电芯片的设计篇
- iaas、paas、saas的云计算服务模式简介
- jsf dataTable修改一行数据的方法
- python初体验
- LED Tube(LED 灯管)常见欧规安规认证测试要求
- oracle的开启和关闭
- Java WebSocket 聊天室Demo
- HTC595的时序操作序分析