php加解密怎么做

php加解密怎么做

内容导读

收集整理的这篇技术教程文章主要介绍了php加解密怎么做,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3040字,纯文字阅读大概需要5分钟

内容图文

基于这几个函数可逆转的加密为:base64_encode()urlencode()相对应的解密函数:base64_decode()urldecode() ,示例如下:

1、第一种加密解密算法

<?php
function encryptDecrypt($key, $string, $decrypt){


 if($decrypt){




 $decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($string), MCRYPT_MODE_CBC, md5(md5($key))), "12");




 return $decrypted;


 }else{




 $encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));




 return $encrypted;


 }
 }
 //加密:"z0JAx4qMwcF+db5TNbp/xwdUM84snRsXvvpXuaCa4Bk="
echo encryptDecrypt('password', 'Helloweba欢迎您',0);
 //解密:"Helloweba欢迎您"
echo encryptDecrypt('password', 'z0JAx4qMwcF+db5TNbp/xwdUM84snRsXvvpXuaCa4Bk=',1);
?>

2、第二种解密解密算法

<?php
//加密函数
function lock_url($txt,$key='www.xxxx.com'){


$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";


$nh = rand(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;


for ($i=0; $i<strlen($txt); $i++) {




$k = $k == strlen($mdKey) ? 0 : $k;




$j = ($nh+strpos($chars,$txt[$i])+ord($mdKey[$k++]))%64;




$tmp .= $chars[$j];


}


return urlencode($ch.$tmp);
}
//解密函数
function unlock_url($txt,$key='www.xxxx.com'){


$txt = urldecode($txt);


$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";


$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;


for ($i=0; $i<strlen($txt); $i++) {




$k = $k == strlen($mdKey) ? 0 : $k;




$j = strpos($chars,$txt[$i])-$nh - ord($mdKey[$k++]);




while ($j<0) $j+=64;




$tmp .= $chars[$j];


}


return base64_decode($tmp);
}
?>

3、第三种加密解密算法

<?php
//改进后的算法
//加密函数
function lock_url($txt,$key='test'){


$txt = $txt.$key;


$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";


$nh = rand(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;


for ($i=0; $i<strlen($txt); $i++) {




$k = $k == strlen($mdKey) ? 0 : $k;




$j = ($nh+strpos($chars,$txt[$i])+ord($mdKey[$k++]))%64;




$tmp .= $chars[$j];


}


return urlencode(base64_encode($ch.$tmp));
}
//解密函数
function unlock_url($txt,$key='test'){


$txt = base64_decode(urldecode($txt));


$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";


$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;


for ($i=0; $i<strlen($txt); $i++) {




$k = $k == strlen($mdKey) ? 0 : $k;




$j = strpos($chars,$txt[$i])-$nh - ord($mdKey[$k++]);




while ($j<0) $j+=64;




$tmp .= $chars[$j];


}


return trim(base64_decode($tmp),$key);
}
?>

对于不同需要,可以使用不同加密解密算法。

推荐教程:PHP视频教程

以上就是php加解密怎么做的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的php加解密怎么做全部内容,希望文章能够帮你解决php加解密怎么做所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com