PHP,Python互通的加密解密函数
2011-11-13 11:39
483 查看
原理如下,假如:
加密
明文:1010 1001
密匙:1110 0011
密文:0100 1010
得出密文0100 1010,解密之需和密匙异或下就可以了
解密
密文:0100 1010
密匙:1110 0011
明文:1010 1001
并没有什么高深的算法,密匙重要性很高,所以,关键在于怎么生成密匙。
PHP版本
Python版本
原文来自 小田的博客 http://www.xiaot.net/post/PHP-PythonHuTongDeJiaMiJieMiHanShu.html
加密
明文:1010 1001
密匙:1110 0011
密文:0100 1010
得出密文0100 1010,解密之需和密匙异或下就可以了
解密
密文:0100 1010
密匙:1110 0011
明文:1010 1001
并没有什么高深的算法,密匙重要性很高,所以,关键在于怎么生成密匙。
PHP版本
function tcodes($string, $isEncrypt = true, $key = 'xiaot.net') { $dynKey = $isEncrypt ? hash('sha1', microtime(true)) : substr($string, 0, 40); $dynKey1 = substr($dynKey, 0, 20); $dynKey2 = substr($dynKey, 20); $fixKey = hash('sha1', $key); $fixKey1 = substr($fixKey, 0, 20); $fixKey2 = substr($fixKey, 20); $newkey = hash('sha1', $dynKey1 . $fixKey1 . $dynKey2 . $fixKey2); if($isEncrypt){ $newstring = $fixKey1 . $string . $dynKey2; }else{ $newstring = base64_decode(substr($string, 40)); } $re = ''; $len = strlen($newstring); for ($i = 0; $i < $len; $i++) { $j = $i % 40; $re .= chr(ord($newstring{$i}) ^ ord($newkey{$j})); } return $isEncrypt ? $dynKey . str_replace('=', '_', base64_encode($re)) : substr($re, 20, -20); }
Python版本
import base64 import hashlib import time def tcodes(strs,isEncrypt=1,key='xiaot.net'): now_time = time.time() dynKey = hashlib.new("sha1",str(now_time)).hexdigest() if isEncrypt == 1 else strs[0:40] dykey1= dynKey[0:20] dykey2= dynKey[20:] fixKey = hashlib.new("sha1",key).hexdigest() fixkey1 = fixKey[0:20] fixkey2 = fixKey[20:] newkey = hashlib.new("sha1",dykey1+fixkey1+dykey2+fixkey2).hexdigest() if(isEncrypt == 1): newstring = fixkey1 + strs + dykey2 else: newstring = base64.b64decode(strs[40:].replace('_', '=')) re='' strlen= len(newstring) for i in range(0,strlen): j=i%40 re +=chr(ord(newstring[i])^ord(newkey[j])) return dynKey + base64.b64encode(re).replace('=','_') if isEncrypt == 1 else re[20:-20]
原文来自 小田的博客 http://www.xiaot.net/post/PHP-PythonHuTongDeJiaMiJieMiHanShu.html
相关文章推荐
- 2个比较经典的PHP加密解密函数分享
- php 自带加密、解密函数
- php中base64_decode与base64_encode加密解密函数实例
- 一个简单的php加密解密函数(动态加密)
- PHP加密解密函数
- php 加密、解密函数 (discuz)
- PHP加密解密函数
- php加密解密函数authcode的用法详细解析
- 提供openssl -aes-256-cbc兼容加密/解密的简单python函数
- PHP和.NET通用的加密解密函数类,均使用3DES加解密 .
- PHP&nbsp;url 加密解密函数
- php源码分析之DZX1.5加密解密函数authcode用法
- discuz 经典php加密解密函数 authcode 解析
- discuz 经典php加密解密函数 authcode 解析
- php开发中的url地址传输加密解密函数
- 2个比较经典的PHP加密解密函数分享
- 2个比较经典的PHP加密解密函数分享
- 加密解密php与nodejs的加密数据互通
- php des 加密解密函数 mcrypt