利用php实现一个可逆加密算法

  介绍

利用php实现一个可逆加密算法?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

php代码如下:

& lt; php ?   class  encryptCalss   {   var 关键=12美元;   function 编码($ txt) {   (我=0;i<美元;strlen ($ txt);美元我+ +){   美元$ txt[我]=科(奥德($ txt [$ i]) + $ this→键);   }   return  $ txt=urlencode (base64_encode (urlencode ($ txt)));   }   function 解码($ txt) {   $ txt=urldecode (base64_decode (txt)美元);   (我=0;i<美元;strlen ($ txt);美元我+ +){   美元$ txt[我]=科(奥德($ txt [$ i])——美元这→键);   }   return  $ txt;   }   }   祝辞;

康盛创想加密解密:

& lt; php ?/* *   *大敌;   ,* @param  string  string 美元;原文或者密文   ,* @param  string  operation 美元;操作(| ENCODE 解码),默认为,解码   ,* @param  string  key 美元;密钥   ,* @param  int  expiry 美元;密文有效期,,加密时候有效,,单位,秒,0,为永久有效   ,* @return  string 处理后的,原文或者,经过,base64_encode 处理后的密文   ,* @example    ,*,a 美元;=,验证码(& # 39;abc # 39;,, & # 39;编码# 39;,,& # 39;关键# 39;);   ,*,b 美元;=,验证码(一美元,& # 39;解码# 39;,,& # 39;关键# 39;);,b (abc)美元//,   *大敌;   ,*,a 美元;=,验证码(& # 39;abc # 39;,, & # 39;编码# 39;,,& # 39;关键# 39;,,3600);   ,*,b 美元;=,验证码(& # 39;abc # 39;,, & # 39;解码# 39;,,& # 39;关键# 39;);,//,在一个小时内,美元b (abc),否则,b 美元;为空   ,*/function 验证码(字符串,操作美元=& # 39;解码# 39;,$关键=& # 39;& # 39;,到期美元=0){   美元才能ckey_length=4;   美元才能关键=md5 (key 美元;?,美元关键:“kalvin.cn");   美元才能keya=md5 (substr(关键美元0 16));   美元才能keyb=md5 (substr(关键美元,16日16));   keyc=ckey_length 美元才能?,(美元操作==& # 39;解码# 39;,?,substr(字符串,美元0,ckey_length美元):substr (md5 (()) - ckey_length美元)):& # 39;& # 39;;   cryptkey=美元才能keya.md5 (keya。keyc美元);   美元才能key_length=strlen (cryptkey美元);   字符串=美元才能操作==& # 39;解码# 39;,?,base64_decode (substr(字符串,ckey_length美元)):sprintf (& # 39; % 010 d # 39;, expiry 美元;?,到期美元+时间():0).substr (md5(字符串。keyb美元),0,16)。美元的字符串;   美元才能string_length=strlen(字符串);   美元才能结果=& # 39;& # 39;;   美元才能盒=范围(0255);   美元才能rndkey=array ();   ,,(i=0; i<美元=255;美元我+ +){   ,,,rndkey美元($ i)=奥德($ cryptkey[我key_length美元]);   ,,}   ,,(j=$ i=0; i<美元;256;美元我+ +){   ,,,$ j=($ j +盒子[我]美元+ rndkey美元[$ i]) % 256;   ,,,tmp=美元($ i)盒;   ,,,盒子美元($ i)=$美元[j]盒;   ,,,美元[j]美元=$ tmp盒;   ,,}   的才能($=$ j=$ i=0; i<美元;string_length美元;美元我+ +){   ,,,一个美元=(+ 1美元)% 256;   ,,,$ j=(j +箱美元(美元)% 256;   ,,,tmp=美元[美元]盒;   ,,,盒子美元(美元)=$美元[j]盒;   ,,,美元[j]美元=$ tmp盒;   ,,,的结果。美元=科(奥德($ string [$ i]), ^,盒子($((盒子[美元]+箱美元[j]美元)% 256]));   ,,}   如果才能(美元操作==& # 39;解码# 39;){   ,,,如果((substr(因此,美元0,10)==0 | | substr(因此,美元0,10)-()在0),,substr(16)因此,美元10日==substr (md5 (substr(因此,美元26)。keyb美元),0,16)){   ,,,,,returnsubstr(因此,美元26);   还有,,,}{   ,,,,,返回# 39;& # 39;;   ,,,}   }{其他才能   ,,,return 美元keyc.str_replace (& # 39;=& # 39; & # 39; & # 39;, base64_encode(结果)美元);   ,,}   }   ?在

看完上述内容,你们掌握利用php实现一个可逆加密算法的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

利用php实现一个可逆加密算法