PHP带参数可逆的加密解密函数,可用于cookie的加密解密

在开发应用过程中我们经常会涉及一些链接或参数或cookie的加密解密,由于php自身提供的md5函数不可逆,因此md5只适用于类似密码加密的地方,而cookie加密则有局限性,下面为大家提供一种加密解密函数方法,供大家参考:

<?php

//加密函数
function passport_encrypt($txt, $key) {
	srand((double)microtime() * 1000000);
	$encrypt_key = md5(rand(0, 32000));
	$ctr = 0;
	$tmp = ‘‘;
	for($i = 0;$i < strlen($txt); $i++) {
	   $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
	   $tmp .= $encrypt_key[$ctr].($txt[$i] ^ $encrypt_key[$ctr++]);
	}
	return base64_encode(passport_key($tmp, $key));
}
//解密函数
function passport_decrypt($txt, $key) {
	$txt = passport_key(base64_decode($txt), $key);
	$tmp = ‘‘;
	for($i = 0;$i < strlen($txt); $i++) {
	   $md5 = $txt[$i];
	   $tmp .= $txt[++$i] ^ $md5;
	}
	return $tmp;
}

function passport_key($txt, $encrypt_key) {
	$encrypt_key = md5($encrypt_key);
	$ctr = 0;
	$tmp = ‘‘;
	for($i = 0; $i < strlen($txt); $i++) {
	   $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
	   $tmp .= $txt[$i] ^ $encrypt_key[$ctr++];
	}
	return $tmp;
}
echo passport_encrypt(‘安德兔‘,‘andetu‘);
echo ‘<br>‘;
echo passport_decrypt(‘UbgE+lfWVLMH4wC9Db8EjFXF‘,‘andetu‘);
时间: 2024-12-24 00:12:37

PHP带参数可逆的加密解密函数,可用于cookie的加密解密的相关文章

python基础 带参数以及返回值的函数装饰器

1 #带参数以及返回值的函数装饰器,上一篇博客记录了无参数函数装饰器写法以及使用方案,当函数有参数以及返回值时需要将装饰器进行如下修稿 2 def timer(fun): 3 def deco(*args,**kwargs): #被装饰函数实际是执行deco,所以在此将被装饰函数参数进行传递 4 start_time = time.time() 5 res = fun(*args,**kwargs) #将被装饰函数的返回值接收 6 stop_time = time.time() 7 return

Qt带参数的信号,和指针函数和函数指针

一:Qt带参数的信号 main.cpp #include "widget.h" #include "slot.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); //查找QApplication()的相关资料 Widget w; w.show(); return a.exec(); } widget.cpp #include &

带参数的main函数

第一个带参数的main. #include <iostream.h> int main(int argc,char *argv[]) { for(inti=0;i<argc;i++) { cout<<argv[i]<<'\t'; // } return0; } /* int argc, char **argv 用于运行时,把命令行参数传入主程序. argc -- 命令行参数总个数,包括 可执行程序名. argv[i] -- 第 i 个参数. argv[0] --

php中base64_decode与base64_encode加密解密函数

php中base64_decode与base64_encode加密解密函数,实例分析了base64加密解密函数的具体用法,具有一定的实用价值,需要的朋友可以参考下 本文实例讲述了php中base64_decode与base64_encode加密解密函数.分享给大家供大家参考.具体分析如下: 这两个函数在php中是用得对php代码进行加密与解密码的base64_encode是加密,而base64_decode是解密了,下面我们看两个简单实例.//解密: base64_encode语法:string

python 第十二天2018.04.01 带参数的装饰器,,函数的有用信息

一.带参数的装饰器,函数的有用信息 def func1(): '''此函数的功能是完成的登陆的功能 return: 返回值是登陆成功与否(true,false) ''' print(333) func1() print(func1.__name__)#func1 print(func1.__doc__)#此函数的功能是完成的登陆的功能,return: 返回值是登陆成功与否 打印函数名 from functools import wraps def wrapper(f): @wraps(f) de

LKT系列加密芯片DES加解密以及OpenSSL DES接口实现加解密

1.测试目标使用已经预置DES密钥的LKT4201N系列加密芯片完成运算2.测试环境本示例运行环境为windows系统.测试软件LCS KIT.LKT-K100开发板.3.测试步骤注意:"->"表示使用LCS KIT软件操作LKT-K100向加密芯片发送数据:"<-"表示使用LCS KIT软件操作LKT-K100读回加密芯片输出的数据.4.测试指令使用LKT4201N内部已存放的01号30密钥和01号31密钥进行加密操作测试( 注: 如何创建KEY文件和

介绍几个PHP 自带的加密解密函数

目前经常使用的加密函数有:md5(), sha1(), crypt(), base64_encode(), urlencode() .其中 md5(), sha1(), crypt() 是不可逆的加密方式.base64_encode() ,urlencode() 是可逆的加密方式.分别对应的解密函数为:base64_decode(), urldecode(). 使用方法: $str = '要加密的字符串'; // md5 加密 $md5 = md5($str); echo $md5 . '</b

php加密解密函数

转自:http://www.jb51.net/article/51706.htm 很多项目的会员系统,都要求要有记住登录功能,在通过cookies实现功能是,由于要将客户信息直接保存到cookies,如果直接写入cookies势必会带来安全隐患,因此通过可逆加密后再保存到cookies相对就安全了 项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理.最常见的应用在用户登录以及一些API

mysql 加密解密函数

http://blog.csdn.net/wh62592855/article/details/6777753 mysql下的加密函数有如下几个 PASSWORD():创建一个经过加密的密码字符串,适合于插入到MySQL的安全系 统.该加密过程不可逆,和unix密码加密过程使用不同的算法.主要用于MySQL的认证系统. ENCRYPT(,):使用UNIX crypt()系统加密字符串,ENCRYPT()函数接收要加密的字符串和(可选的)用于加密过程的salt(一个可以唯一确定口令的字符串,就像钥