宝哥软件园

php实现的三个常用加密解密功能函数示例

编辑:宝哥软件园 来源:互联网 时间:2021-09-03

本文实例讲述了服务器端编程语言(专业超文本预处理器的缩写)实现的三个常用加密解密功能函数。分享给大家供大家参考,具体如下:

算法一:

//加密函数function lock_url($txt,$ key=' www。JB 51。net '){ $ chars=' abcdefghijklmnopqrstuvwxyzabbcdefghijklmnopqrstuvwxyz 0123456789-=';$nh=兰特(0,64);$ ch=$ chars[$ NH];$mdKey=md5($key).$ ch);$mdKey=substr($mdKey,$nh%8,$ NH % 8 ^ 7);$ txt=base64 _ encode($ txt);$ tmp=$ I=0;$ j=0;$ k=0;对于($ I=0;$ is tren($ txt);$i ) { $k=$k==strlen($mdKey)?0 :美元k;$j=($nh strpos($chars,$txt[$i])订单($ MDKey[$ k])d;$tmp .=$ chars[$ j];}返回urlencode($ch ).$ tmp);}//解密函数函数unlock_url($txt,$ key=' www。JB 51。net '){ $ txt=URL decode($ txt);$ chars=' abcdefghijklmnopqrstuvwxyzabbcdefghijklmnopqrstuvwxyz 0123456789-=';$ ch=$ txt[0];$nh=strpos($chars,$ ch);$mdKey=md5($key).$ ch);$mdKey=substr($mdKey,$nh%8,$ NH % 8 ^ 7);$txt=substr($txt,1);$ tmp=$ I=0;$ j=0;$ k=0;对于($ I=0;$ is tren($ txt);$i ) { $k=$k==strlen($mdKey)?0 :美元k;$j=strpos($chars,$ txt[$ I])-$ NH-order($ MDkey[$ k]);而($ j0)$ j=64;$tmp .=$ chars[$ j];}返回base64 _ decode($ tmp);}用法:

$str='我们;$ pwd=lock _ URL($ str);"回声"加密之后:'.$pwd .br/';"回声"解密还原:'.unlock _ URL($ pwd);运行结果:

算法二:

?phpffunction passport _ encrypt($ txt,$ key=' www。JB 51。net '){ srand((double)micro time()* 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[$ ctrl].($ txt[$ i]^ $ encrypt _ key[$ CTR]);}返回URL编码(base64 _ encode(passport _ key($ tmp,$ key));} function passport_decrypt($txt,$ key=' www。JB 51。net '){ $ txt=passport _ key(base64 _ decrypt(URL decrypt($ txt)),$ key);$ tmp=for($ I=0;$ I strlen($ txt);$ I){ $ MD5=$ txt[$ I];$tmp .=$ txt [$ i]^ $ MD5;}返回$ tmp}函数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];}返回$ tmp}?用法:

?PHP $ txt=' 1 $ key=' test key $ encrypt=passport _ encrypt($ txt,$ key);$ decrypt=passport _ decrypt($ encrypt,$ key);回声$加密br ';回声$解密br ';运行结果:

算法三(改进第一个加密之后的算法)

//加密函数函数lock_url($txt,$key='www.jb51.net'){ $txt=$txt .$ key $ chars=' abcdefghijklmnopqrstuvwxyzabbcdefghijklmnopqrstuvwxyz 0123456789-=';$nh=兰特(0,64);$ ch=$ chars[$ NH];$mdKey=md5($key).$ ch);$mdKey=substr($mdKey,$nh%8,$ NH % 8 ^ 7);$ txt=base64 _ encode($ txt);$ tmp=$ I=0;$ j=0;$ k=0;对于($ I=0;$ is tren($ txt);$i ) { $k=$k==strlen($mdKey)?0 :美元k;$j=($nh strpos($chars,$txt[$i])订单($ MDKey[$ k])d;$tmp .=$ chars[$ j];}返回urlencode(base64_encode($ch .$ tmp));}//解密函数函数unlock_url($txt,$ key=' www。JB 51。net '){ $ txt=base64 _ decode(URL decode($ txt));$ chars=' abcdefghijklmnopqrstuvwxyzabbcdefghijklmnopqrstuvwxyz 0123456789-=';$ ch=$ txt[0];$nh=strpos($chars,$ ch);$mdKey=md5($key).$ ch);$mdKey=substr($mdKey,$nh%8,$ NH % 8 ^ 7);$txt=substr($txt,1);$ tmp=$ I=0;$ j=0;$ k=0;对于($ I=0;$ is tren($ txt);$i ) { $k=$k==strlen($mdKey)?0 :美元k;$j=strpos($chars,$ txt[$ I])-$ NH-order($ MDkey[$ k]);而($ j0)$ j=64;$tmp .=$ chars[$ j];} return trim(base64_decode($tmp),$ key);}用法:

$str='我们;$ pwd=lock _ URL($ str);"回声"加密之后:'.$pwd .br/';"回声"解密还原:'.unlock _ URL($ pwd);运行结果:

PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:

文本在线加解密工具(包括AES、DES、RC4等。)http://tools.jb51.net/password/txt_encode

MD5在线加密工具:http://tools.jb51.net/password/CreateMD5Password

在线哈希/哈希算法加密工具:http://tools.jb51.net/password/hash_encrypt

在线MD5/哈希/sha-1/sha-2/sha-256/sha-512/sha-3/ripemd-160加密工具:http://tools.jb51.net/password/hash_md5_sha

在线sha1/sha 224/sha 256/sha 384/sha 512加密工具:http://tools.jb51.net/password/sha_encode

更多对PHP相关内容感兴趣的读者可以查看本网站的话题:《php加密方法总结》、《PHP编码与转码操作技巧汇总》、《PHP数学运算技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php正则表达式用法总结》、0103010。

希望本文对PHP编程有所帮助。

更多资讯
游戏推荐
更多+