通过Discuz Passport集成Discuz论坛所用到的加密函数


function passport_encrypt(txt, key) {
//不能传入整数,要传入字符串
var random = ''+parseInt(Math.random()*32000);
var encrypt_key = hex_md5(random);

var ctr = 0;
var tmp = '';
for(var i = 0;i < txt.length; i++) {
if(encrypt_key.length == ctr)
ctr = 0;
tmp += encrypt_key.charAt(ctr)+ String.fromCharCode(txt.charCodeAt(i) ^ encrypt_key.charCodeAt(ctr++));
}
return base64_encode(passport_key(tmp, key));
}

function passport_decrypt(txt, key) {
txt = passport_key(base64_decode(txt), key);
var tmp = '';
for(var i = 0;i < txt.length; i++) {
tmp += String.fromCharCode(txt.charCodeAt(i) ^ txt.charCodeAt(++i));
}
return tmp;
}

function passport_key(txt, encrypt_key) {
encrypt_key = hex_md5(encrypt_key);
var ctr = 0;
var tmp = '';
for(var i = 0; i < txt.length; i++) {
if(encrypt_key.length == ctr)
ctr = 0;
tmp += String.fromCharCode(txt.charCodeAt(i) ^ encrypt_key.charCodeAt(ctr++));
}
return tmp;
}

转载于:https://www.cnblogs.com/wuxy/archive/2010/11/18/1880407.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值