url 加密解密, email 加密

代码:

<?php
function random($length, $numeric = 0)
{
	//返回随机数
	mt_srand((double)microtime() * 1000000);
	if($numeric){
		$hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1));
	}else{
	   $hash = '';
	   $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
	   $max = strlen($chars) - 1;
	   for($i = 0; $i < $length; $i++){
		$hash .= $chars[mt_rand(0, $max)];
	   }
	}
	return $hash;
}

function query_encode($sQuery)
{
	//加密链接
	if(strlen($sQuery)==0){
	   return '';
	}else{
	   $s_tem = preg_replace("/&amp;/i", '&', $sQuery);
	   $s_tem = preg_replace("/&/i", '&amp;', $s_tem);
	   $a_tem = explode('&amp;', $s_tem);
	   shuffle($a_tem);
	   $s_tem = implode('&amp;', $a_tem);
	   $s_tem = random(3). $s_tem . random(3);
	   $s_tem = rawurlencode($s_tem);
	   $s_tem = base64_encode($s_tem);
	   $s_tem = strrev($s_tem);
	   return $s_tem;
	}
}

function query_decode($sEncode)
{
	//解密链接
	if(strlen($sEncode)==0){
	   return '';
	}else{
	   $s_tem = strrev($sEncode);
	   $s_tem = base64_decode($s_tem);
	   $s_tem = rawurldecode($s_tem);
	   $s_tem = substr($s_tem, 0, -3);
	   $s_tem = substr($s_tem, 3);
	   return $s_tem;
	}
}

function rebuild_GET()
{
	//重写$_GET全局变量
	$_GET = array();
	$s_query = $_SERVER['QUERY_STRING'];
	if(strlen($s_query)==0){
	   return;
	}else{
	   $s_tem = query_decode($s_query);
	   $a_tem = explode('&amp;', $s_tem);
	   foreach($a_tem as $val){
		$tem = explode('=', $val);
		$_GET[$tem[0]] = $tem[1];
	   }
	}
}

	rebuild_GET();

	echo 'GET:<pre>'.print_r($_GET, true).'</pre>';

	function testGET(){
		echo 'Function GET:<pre>'.print_r($_GET, true).'</pre>';
	}

	testGET();
?>

<br /><br /><br />

<?
	for($i=1; $i<10; $i++){
		$s_url = query_encode('ac=index:logo&amp;class=45&id='.$i);
		echo sprintf('<a href="?%s">TEST: %s</a><br />', $s_url, $s_url);
	}
?>

 

加密解密的其他方法:

<?
// Encript  String
function encrypt($string) {
	$key = 'tkdcks9796';

	$result = '';
	$string .= '---'.$key;
	for($i=0; $i<strlen($string); $i++) {
		$char = substr($string, $i, 1);
		$keychar = substr($key, ($i % strlen($key))-1, 1);
		$char = chr(ord($char)+ord($keychar));
		$result.=$char;
	}

	return base64_encode($result);
}

// Decript  String
function decrypt($string) {
	$key = 'tkdcks9796';

	$result = '';
	$string = base64_decode($string);
	for($i=0; $i<strlen($string); $i++) {
		$char = substr($string, $i, 1);
		$keychar = substr($key, ($i % strlen($key))-1, 1);
		$char = chr(ord($char)-ord($keychar));
		$result.=$char;
	}
	$tmp = explode('---',$result);
	return $tmp[0];
}

echo encrypt('test'),'<br>',decrypt(encrypt('test'));

?>

 

或者

function encrypt($data, $key)
{
	$key	=	md5($key);
    $x		=	0;
    $len	=	strlen($data);
    $l		=	strlen($key);
    for ($i = 0; $i < $len; $i++)
    {
        if ($x == $l) 
        {
        	$x = 0;
        }
        $char .= $key{$x};
        $x++;
    }
    for ($i = 0; $i < $len; $i++)
    {
        $str .= chr(ord($data{$i}) + (ord($char{$i})) % 256);
    }
    return base64_encode($str);
}

function decrypt($data, $key)
{
	$key = md5($key);
    $x = 0;
    $data = base64_decode($data);
    $len = strlen($data);
    $l = strlen($key);
    for ($i = 0; $i < $len; $i++)
    {
        if ($x == $l) 
        {
        	$x = 0;
        }
        $char .= substr($key, $x, 1);
        $x++;
    }
    for ($i = 0; $i < $len; $i++)
    {
        if (ord(substr($data, $i, 1)) < ord(substr($char, $i, 1)))
        {
            $str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1)));
        }
        else
        {
            $str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1)));
        }
    }
    return $str;
}

$data = 'PHP加密解密算法';		// 被加密信息
$key = '123';					// 密钥
$encrypt = encrypt($data, $key);
$decrypt = decrypt($encrypt, $key);
echo $encrypt, "\n", $decrypt;

 

邮件地址加密:

function encode_email($email='info@domain.com', $linkText='Contact Us', $attrs ='class="emailencoder"' )
{
	// remplazar aroba y puntos
	$email = str_replace('@', '&#64;', $email);
	$email = str_replace('.', '&#46;', $email);
	$email = str_split($email, 5);

	$linkText = str_replace('@', '&#64;', $linkText);
	$linkText = str_replace('.', '&#46;', $linkText);
	$linkText = str_split($linkText, 5);

	$part1 = '<a href="ma';
	$part2 = 'ilto&#58;';
	$part3 = '" '. $attrs .' >';
	$part4 = '</a>';

	$encoded = '<script type="text/javascript">';
	$encoded .= "document.write('$part1');";
	$encoded .= "document.write('$part2');";
	foreach($email as $e)
	{
			$encoded .= "document.write('$e');";
	}
	$encoded .= "document.write('$part3');";
	foreach($linkText as $l)
	{
			$encoded .= "document.write('$l');";
	}
	$encoded .= "document.write('$part4');";
	$encoded .= '</script>';

	return $encoded;
}

echo encode_email();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值