`
天梯梦
  • 浏览: 13762095 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

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();

 

分享到:
评论

相关推荐

    Razor的语法

    - 输出Email地址:Razor会自动识别Email格式,无需转换。在代码块中,可以使用`@:`开头,如`@:Tom@gmail.com`。 - 输出HTML代码:可以直接输出字符串变量,如`@html`,其中`html`变量包含HTML代码。 - 输出HTML...

    11.receive_send_email.rar_加密解密_Visual_C++_

    本文将围绕“11.receive_send_email.rar_加密解密_Visual_C++”的主题展开,深入探讨如何使用Visual C++实现邮件的加密发送与解密接收。 首先,邮件的收发通常涉及SMTP(Simple Mail Transfer Protocol)和POP3...

    C#.Net底层操作数据库及常用功能封装类

    本主题将深入探讨"C#.Net底层操作数据库及常用功能封装类"的相关知识点,包括如何封装数据库操作、消息处理、加密解密、邮件发送以及数据字符串处理等功能。 首先,我们来关注数据库操作。在C#中,可以使用ADO.NET...

    Delphi开发技巧之-字符串

    加密解密字符串 取URL中的文件名 取字符串中的字符排列 在 Case 语句中使用字符串 在Delphi中使用正规表达式 字符串左右填充字符 扩展Pos函数 改变常量值 映射字符串到指定记录 格式化字符串为CGI请求 格式化文件...

    Python爬虫如何应对Cloudflare邮箱加密

    在上面的代码中,`get_js()`函数读取包含解密函数`jiemi`的JavaScript文件,然后`decrypt_email()`函数通过`execjs`编译并执行这个函数,传入加密后的字符串作为参数,从而得到解密后的邮箱地址。 需要注意的是,...

    [ 晨曦小竹·工具集]不用乱找方法,无限分类,加密,字符串操作等此工具集里应有尽有

    1、更新了分页类,增加URL重写的输出方法; 2、其它的更新内容请大家自己研究,记性有限。 2009年12月01日更新内容: 1、更新部分方法代码及结构; 2、增加防SQL注入方法;(使用方法详见文档) 3、分页类更新并...

    Chilkat Class Libraries sn

    Chilkat Class Libraries 是一系列功能丰富的软件开发工具包(SDK),主要用于帮助开发者实现各种网络通信、加密解密、邮件处理等功能。这些库提供了广泛的类集合,涵盖了从FTP操作到电子邮件管理、加密技术等多方面...

    一个基于Vue和springboot+mybatisplus实现的文件云盘管理系统+源代码+文档说明

    - 基于网页的加密文件下载与解密(20分) - 已完成《基于网页的文件上传加密与数字签名系统》所有要求 - 提供匿名用户加密后文件和关联的数字签名文件的下载 - 客户端对下载后的文件进行数字签名验证 【 *非对称...

    20秋学期东北大学《电子商务》在线平时作业2【满分答案】.docx

    17. DES加密:DES是一种对称加密方式,使用相同的密钥进行加密和解密,对应C选项。 18. 网络营销与传统营销:网络营销能个性化市场,建立信任感至关重要,网络时代的市场和顾客形态与传统营销有显著差异,顾客仍是...

    nodejs模拟微博登录

    2. **处理响应**:接收服务器返回的数据,这可能包括登录状态、Session ID(或者Cookie)以及重定向URL等信息。如果登录成功,你需要保存Session ID或Cookie,以便后续请求能保持登录状态。 3. **设置Cookie**:在...

    崩溃日志上传框架LogReport.zip

    DES两种加密解密方式支持,默认不加密日志按天保存目前崩溃日志和Log信息是按天保存,你可以继承接口来实现更多的保存样式携带设备与OS信息在创建日志的时候,会一并记录OS版本号,App版本,手机型号等信息,方便...

    CodeIgniter辅助函数和类库的使用

    5. **加密和安全类库**:提供加密和哈希函数,如`$this-&gt;encrypt-&gt;encode()`和`$this-&gt;encrypt-&gt;decode()`用于加密解密,`$this-&gt;security-&gt;xss_clean()`防止XSS攻击。 三、自定义辅助函数和类库 除了内置的辅助...

    Java 程序 Exchange协议发送,收,查询邮件

    在Java编程环境中,Exchange协议是用于与Microsoft Exchange服务器交互的一种...在实际项目中,还需要考虑错误处理、性能优化以及安全性的相关问题,例如使用SSL/TLS加密通信,处理网络异常,以及管理用户认证凭证等。

    29个PHP常用类

    9. **加密解密类**:如`Encryption`,提供数据的安全加密和解密,保障信息安全。 10. **日志记录类**:如`Logger`,方便记录程序运行过程中的重要事件。 11. **模板引擎类**:如`TemplateEngine`,用于生成动态...

    uni-app一些工具类

    4. **字符串处理**:包括字符串格式化、截取、加密解密等功能,如`formatStr(str, len)`用于限制字符串长度,`md5(str)`用于进行MD5加密。 5. **数组操作**:数组排序、查找、去重等方法,如`arrayUnique(arr)`用于...

    jquery ajax修改全局变量示例代码

    data: "email=" + query.email, type: "post", dataType: "json", success: function(re) { status = 0; } }); // 现在,由于请求是同步的,status将在执行到这里时已经被更新 alert(status); ``` 尽管同步...

    Laravel 7.0 中文文档.pdf

    4. **加密解密**:Laravel 使用安全的加密库,提供数据加密和解密功能。 5. **哈希**:Laravel 自动对用户密码进行哈希处理,保证安全性。 **扩展功能** 1. **Artisan 命令行**:Laravel 的命令行工具,用于生成...

    Django发送邮件和itsdangerous模块的配合使用解析

    这里的`SECRET_KEY`是Django项目中的一个秘密键,用于加密和解密数据。`3600`代表token的有效时间为1小时。加密后的`token`是一个字符串,可以安全地放入邮件的链接中。 邮件发送部分通常使用Django内置的`send_...

    JavaEE实现基于SMTP协议的邮件发送功能

    包括加密的 URL 一起发送到服务器,服务器用自己的私钥解密了你发送的钥匙,然后用这把对称加密的钥匙给你请求的 URL 链接解密。 在 JavaEE 中,可以使用 JavaMail API 实现基于 SMTP 协议的邮件发送功能。JavaMail...

    Oracle P/L SQL实现发送Email、浏览网页等网络操作功能

    as_SourceStr in Varchar2 --需要加密的字符串 ) Return Varchar2; --将Email地址去头去尾,剩下最简单的Email地址,如"TSI Customer Service" 变成cs@csdn.com Function f_GetNakedEmailAddr( as_...

Global site tag (gtag.js) - Google Analytics