为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 网络相关源码 正文

易语言PHP加密源码

三叶资源网 2012-05-27 12:51:41 网络相关源码 1717 ℃ 1 评论

资源介绍:

例程程序置入汇编代码,调用API函数实现易语言与PHP通讯加密协议。

<?PHP
session_start();
ini_set("display_errors", 0);
$MsgKey = 'www.hyun8.com';//通讯秘钥

if(substr($_POST['Data'],0,12)=='GET_Temp_Key'){ // 获取临时的加密钥匙
	$_SESSION[Temp_Key]=Temp_Key();//生产随机钥匙 写到SESSION里面 SESSION不懂可以百度搜索下
	exit(ByteHex(ARSC($_SESSION[Temp_Key],$MsgKey))); //返回临时钥匙 将钥匙加密
}
$temp = ARSC(HEXByte($_POST['Data']),$_SESSION[Temp_Key]);//使用SESSION里面临时钥匙解密
$temp = explode('|',$temp);//吧已解密的数据分割成数组
$_SESSION[Temp_Key]=md5($_SESSION[Temp_Key]);//将临时钥匙md5一次防止抓包截获重复利用并写到SESSION里面
if ($temp[0] == "Login") { // 判断第一个数组
	if ($temp[1] == "Username" and $temp[2]=="Password") { //判断账号密码是否正确
	exit(ByteHex(ARSC("login,ok",$_SESSION[Temp_Key])));//使用md5以后的临时钥匙加密数据 且返回加密数据  
	}
	exit(ByteHex(ARSC("login,no",$_SESSION[Temp_Key])));//使用md5以后的临时钥匙加密数据 且返回加密数据

//因为正在重写中 部分代码未完善 敬请期待 后续更新 已实现动态加密 防止截获数据重复提交
}


function HEXByte($s){
	$r = "";
	for ( $i = 0; $i<strlen($s); $i += 2)
	{
		$x1 = ord($s{$i});
		$x1 = ($x1>=48 && $x1<58) ? $x1-48 : $x1-97+10;
		$x2 = ord($s{$i+1});
		$x2 = ($x2>=48 && $x2<58) ? $x2-48 : $x2-97+10;
		$r .= chr((($x1 << 4) & 0xf0) | ($x2 & 0x0f));
	}
	return $r;
}
function ByteHex($s) {
	$r = "";
	$hexes = array ("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
	for ($i=0; $i<strlen($s); $i++) {$r .= ($hexes [(ord($s{$i}) >> 4)] . $hexes [(ord($s{$i}) & 0xf)]);}
	return $r;
}

function ARSC($data,$keys)
{  
	$key[] ="";
	$box[] ="";
	$pwd_length = strlen($keys);
	$data_length = strlen($data);
	for ($i = 0; $i < 256; $i++)
	{
		$key[$i] = ord($keys[$i % $pwd_length]);
		$box[$i] = $i;
	}
	for ($j = $i = 0; $i < 256; $i++)
	{
		$j = ($j + $box[$i] + $key[$i]) % 256;
		$tmp = $box[$i];
		$box[$i] = $box[$j];
		$box[$j] = $tmp;
	}
	for ($a = $j = $i = 0; $i < $data_length; $i++)
	{
		$a = ($a + 1) % 256;
		$j = ($j + $box[$a]) % 256;
		$tmp = $box[$a];
		$box[$a] = $box[$j];
		$box[$j] = $tmp;

		$k = $box[(($box[$a] + $box[$j]) % 256)];
		$cipher .= chr(ord($data[$i]) ^ $k);
	}
	return $cipher;
}

function Temp_Key(){
    if (function_exists('com_create_guid')){
        return com_create_guid();
    }else{
        mt_srand((double)microtime()*10000);//optional for php 4.2.0 and up.
        $charid = strtoupper(md5(uniqid(rand(), true)));
        $hyphen = chr(45);// "-"
        $uuid = chr(123)// "{"
                .substr($charid, 0, 8).$hyphen
                .substr($charid, 8, 4).$hyphen
                .substr($charid,12, 4).$hyphen
                .substr($charid,16, 4).$hyphen
                .substr($charid,20,12)
                .chr(125);// "}"
        return $uuid;
    }
}
?>

资源作者:

@三叶自学网

资源图片:

易语言PHP加密源码.png    

资源下载:

文件下载


来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

已有1位网友发表了看法:

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
易语言直尺工具源码数美图片旋转工具微信公众号HP-socket3php自学要多久算法模块源码windows安全机制API取QQKEYEtorchDLL劫持英文智能提示折线图源码算法笔记Sign算法模拟系列教程线程池操作图片文字识别一条游走的龙正则表达式
最新评论