有时在项目中我们需要使用PHP对特定信息进行加密,即通过加密算法生成加密字符串,而这些加密字符串可以通过解密进行解密算法,方便程序对解密后的信息进行处理。最常见的应用是用户登录和一些API数据交换场景。最常见的应用是用户登录和一些API数据交换场景。加解密的原理一般是通过一定的加解密算法,在算法中加入密钥,最终得到加解密结果。废话不多说,直接上代码。1、第一类ID的可逆加密功能,也可以用于邀请码等。解密后的数据比较简单例子:lockcode(28)=》000Xunlockcode('000X')=》28`//加密函数``function``lockcode(``$code``){``static``$source_string``=``'E5FCDG3HQA4B1NOPIJ2RSTUV67MWX89KLYZ'``;``$num``=``$code``;``$code``=``''``;``while``(``$num``>0){``$mod``=``$num``%35;``$num``=(``$num``-``$mod``)/35;``$code``=``$source_string``[``$mod``].``$code``;``}``if``(``empty``(``$code``[3]))``$code``=``str_pad``(``$code``,4,``'0'``,STR_PAD_LEFT);``return``$code``;``}``//解密函数``function``unlockcode(``$code``){``static``$source_string``=``'E5FCDG3HQA4B1NOPIJ2RSTUV67MWX89KLYZ'``;``if``(``strrpos``(``$code``,```0'``)!==false)``$code``=``substr``(``$code``,``strrpos``(``$code``,```0'``)+1);``$len``=``strlen``(``$code``);``$code``=``strrev``(``$code``);``$num``=0;``for``(``$i``=0;``$i``<``$len``;``$i``++){``$num``+=``strpos``(``$source_string``,``$code``[``$i``])*pow(35,``$i``);``}``return``$num``;``}`其次,其次是加密功能,我在网上找的。很好用,可逆加密,支持盐值参数。例子:encrypt('abcd','1234')=》nkiV93IfJdecrypt('nkiV93IfJ','1234')=》abcd`//加密函数``function``encrypt(``$data``,``$key``=``'CHENI'``){``$chars``=``"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"``;``$nh``=rand(0,64);``$ch``=``$chars``[``$nh``];``$mdKey``=md5(``$key``.``$ch``);``$mdKey``=``substr``(``$mdKey``,``$nh``%8,``$nh``%8+7);``$data``=```base64_encode``(``$data``);``$tmp``=``''``;``$i``=0;``$j``=0;``$k``=0;``for``(``$i``=0;``$i``<``strlen``(``$data``);``$i``++){``$k``=``$k``==``strlen``(``$mdKey``)?0:``$k``;``$j``=(``$nh``+``strpos``(``$chars``,``$data``[``$i``])+ord(``$mdKey``[``$k``++]))%64;``$tmp``.=``$chars``[``$j``];``}``return``urlencode(``$ch``.``$tmp``);``}``//解密函数``function``decrypt(``$data``,``$key``=``'CHENI'``){``$txt``=urldecode(``$数据``);``$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``);``}`Third,third和上面比较类似,同样支持盐值参数例子:encrypt('abcd','1234')=》mZPHxw==decrypt('mZPHxw==','1234')=》abcd`function``encrypt(``$data``,``$key``){``$char``=``""``;``$str``=``""``;``$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))
'``;``echo``authcode(``'7d49kn9k07uSBZvha8as+/qm4UoLfpy88PFg12glPeDtlzc'``,``'key'``,true);`
