PHP實現的XXTEA加密解密演算法示例

2022-10-06 07:39:11 字數 1494 閱讀 6516

<?php /**

* xxtea 加密實現類

*/class xxtea

$s = array ();

for ($i = 0; $i < $len;程式設計客棧 $i++)

$s[$i] = pack("v", $v[$i]);

return $w ? substr(implode('', $s), 0, $n) : implode('', $s);

} private function str2long($s, $w)

private function int32($n)

public function encrypt($str, $key)

$y = $v[0];

$mx = $this->int32((($z >> 5 & 0x07ffffff) ^ $y << 2) + (($y >> 3 & 0x1fffffff) ^ $z << 4)) ^ $this->int32(($sum ^ $y) + ($k[$p & 3 ^ $e] ^ $z));

$z = $v[$n] = $this->int32($v[程式設計客棧$n] + $mx);

}return $this->long2str($v, false);

} public function decrypt($str, $key)

$z = $v[$n];

$mx = $this->int32((($z >> 5 & 0x07ffffff) ^ $y << 2) + (($y >> 3 & 0x1fffffff) ^ $z << 4)) ^ $this->int32(($sum ^ $y) + ($k[$p & 3 ^ $e] ^ $z));

$y = $v[0] = $this->int32($v[0] - $mx);

$sum = $this->int32($sum - $delta);

}return $this->long2str($v, true);

}}//用法測試:

$strdemo = "www.jb51.net";

$key = "123456";

$pwd = new xxtea();

$pwdrel = $pwd->encrypt($strdemo, $key);

echo $pwdrel;

echo "

";echo $pwd->decrypt($pwdrel, $key);

?>

執行結果:

{���h(�s��7*�u7u

www.jb51.net

ps:關於加密解密感興趣的朋友還可以參考本站**工具:

**rsa加密/解密工具:

文字**加密解密工具(包含aes、des、rc4等):

**雜湊/雜湊演算法加密工具:

**md5/hash/sha-1/sha-2/sha-256/sha-512/sha-3/ripemd-160加密工具:

**sha1/sha224/sha256/sha384/sha512加密工具:

PHP加密解密

加密 function string2secret str 解密 function secret2string sec echo secret2string string2secret 11111111111111111 顯示結果是11111111111111111 echo string2secr...

PHP 加密 解密

由於出於安全考慮,引數傳遞的時候需要進行加密和解密,乙個比較簡單的方法是直接使用php中的函式mcrypt encrypt mcrypt decrypt,乙個加密,乙個解密,但是問題又出現了,這個加密過程中會產生一些使url混亂的符號,於是在加密後對加密字元再進行一次處理,然後多了一一次解析 key...

php加密解密

php可逆加解密 1 位運算 知識點 a b and 按位與 將把 a 和 b 中都為 1 的位設為 1。a b or 按位或 將把 a 和 b 中任何乙個為 1 的位設為 1。a b xor 按位異或 將把 a 和 b 中乙個為 1 另乙個為 0 的位設為 1。a not 按位取反 將 a 中為 ...