This article illustrates the method of implementing reversible encryption in PHP. Share to everyone for your reference. Specifically as follows:
This can be used to reverse the encryption class, no key is difficult to crack.
The PHP code is as follows:
<?php
class Encryptcalss
{
var $key =12;
function encode ($txt) {for
($i =0; $i <strlen ($txt); $i + +) {
$txt [$i]=chr (Ord ($txt [$i]) + $this->key);
}
Return $txt =urlencode (Base64_encode (UrlEncode ($txt)));
}
function decode ($txt) {
$txt =urldecode (Base64_decode ($txt));
For ($i =0 $i <strlen ($txt); $i + +) {
$txt [$i]=chr (Ord ($txt [$i])-$this->key);
return $txt;
}
? >
Discuz Encryption Decryption:
<?php/** * * @param string $string The original text or ciphertext * @param string $operation operation (ENCODE | DECODE), the default is DECODE * @param string $key key * @param int $expiry ciphertext validity period, encryption time valid, unit seconds, 0 for permanent valid * @return string processing of the original or
After Base64_encode processed ciphertext * @example * $a = authcode (' abc ', ' Encode ', ' key '); * $b = Authcode ($a, ' DECODE ', ' key ');
$b (ABC) * * $a = authcode (' abc ', ' ENCODE ', ' key ', 3600); * $b = Authcode (' abc ', ' DECODE ', ' key ');
Within one hours, $b (ABC), otherwise $b is null/function Authcode ($string, $operation = ' DECODE ', $key = ', $expiry =0) {$ckey _length=4;
$key =md5 ($key $key: "kalvin.cn");
$keya =md5 (substr ($key, 0,16));
$keyb =md5 (substr ($key, 16,16)); $KEYC = $ckey _length?
($operation = = ' DECODE ' substr ($string, 0, $ckey _length): substr (MD5 (Microtime ()),-$ckey _length)): ";
$cryptkey = $keya. MD5 ($keya. $KEYC);
$key _length=strlen ($cryptkey); $string = $operation = = ' DECODE '? Base64_decode (substr ($string, $ckey _length)): sprintf ('%010d ', $expiry? $expiry +time (): 0). substr (MD5 ($string. $keyb ), 0,16). $string;
$string _length=strlen ($string);
$result = ';
$box =range (0,255);
$rndkey =array ();
For ($i =0 $i <=255; $i + +) {$rndkey [$i]=ord ($cryptkey [$i% $key _length]);
for ($j = $i =0; $i <256; $i + +) {$j = ($j + $box [$i]+ $rndkey [$i])%256;
$tmp = $box [$i];
$box [$i]= $box [$j];
$box [$j]= $tmp;
for ($a = $j = $i =0 $i < $string _length $i + +) {$a = ($a + 1)%256;
$j = ($j + $box [$a])%256;
$tmp = $box [$a];
$box [$a]= $box [$j];
$box [$j]= $tmp;
$result. =CHR (Ord ($string [$i]) ^ ($box [($box [$a]+ $box [$j])%256]); } if ($operation = = ' DECODE ') {if (substr ($result, 0,10) ==0| |
substr ($result, 0,10)-time () >0) &&substr ($result, 10,16) ==substr (MD5 (substr ($result,). $keyb), 0,16)) {
Returnsubstr ($result, 26);
}else{return ";
}else{return $KEYC. Str_replace (' = ', ', Base64_encode ($result));
}}?>
I hope this article will help you with your PHP programming.