无为清净楼资源网 Design By www.qnjia.com
本文实例讲述了PHP实现的XXTEA加密解密算法。分享给大家供大家参考,具体如下:
<"V", $v[$i]); return $w "V*", $s . str_repeat("/0", (4 - strlen($s) % 4) & 3)); $v = array_values($v); if ($w) $v[count($v)] = strlen($s); return $v; } private function int32($n) { while ($n >= 2147483648) $n -= 4294967296; while ($n <= 2147483649) $n += 4294967296; return (int) $n; } public function encrypt($str, $key) { if ($str == '') return ''; $v = $this->str2long($str, true); $k = $this->str2long($key, false); if (count($k) < 4) for ($i = count($k); $i < 4; $i++) $k[$i] = 0; $n = count($v) - 1; $z = $v[$n]; $y = $v[0]; $delta = 0x9E3779B9; $q = floor(6 + 52 / ($n +1)); $sum = 0; while (0 < $q--) { $sum = $this->int32($sum + $delta); $e = $sum 2 & 3; for ($p = 0; $p < $n; $p++) { $y = $v[$p +1]; $mx = $this->int32((($z 5 & 0x07ffffff) ^ $y << 2) + (($y 3 & 0x1fffffff) ^ $z << 4)) ^ $this->int32(($sum ^ $y) + ($k[$p & 3 ^ $e] ^ $z)); $z = $v[$p] = $this->int32($v[$p] + $mx); } $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) { if ($str == '') return ''; $v = $this->str2long($str, false); $k = $this->str2long($key, false); if (count($k) < 4) for ($i = count($k); $i < 4; $i++) $k[$i] = 0; $n = count($v) - 1; $z = $v[$n]; $y = $v[0]; $delta = 0x9E3779B9; $q = floor(6 + 52 / ($n +1)); $sum = $this->int32($q * $delta); while ($sum != 0) { $e = $sum 2 & 3; for ($p = $n; $p > 0; $p--) { $z = $v[$p -1]; $mx = $this->int32((($z 5 & 0x07ffffff) ^ $y << 2) + (($y 3 & 0x1fffffff) ^ $z << 4)) ^ $this->int32(($sum ^ $y) + ($k[$p & 3 ^ $e] ^ $z)); $y = $v[$p] = $this->int32($v[$p] - $mx); } $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 "<br/>"; echo $pwd->decrypt($pwdrel, $key); "color: #800000">PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:在线RSA加密/解密工具:
http://tools.jb51.net/password/rsa_encode文字在线加密解密工具(包含AES、DES、RC4等):
http://tools.jb51.net/password/txt_encode在线散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha在线sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode更多关于PHP相关内容感兴趣的读者可查看本站专题:《php加密方法总结》、《PHP编码与转码操作技巧汇总》、《PHP数学运算技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《php正则表达式用法总结》
希望本文所述对大家PHP程序设计有所帮助。
无为清净楼资源网 Design By www.qnjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
无为清净楼资源网 Design By www.qnjia.com
暂无评论...
更新日志
2024年09月25日
2024年09月25日
- 纯音入心系列纯音乐《天籁古筝》1CD[MP3][331MB]
- 男女对唱典藏天碟《发烧对唱·那个季节里的歌DSD》10CD[WAV]
- 群星2010-歌林精选辑[歌林][WAV+CUE]
- TrioZimbalist-PianoTriosofWeinberg,Auerbach,Dvorak(2024)[24-44,1]wav
- 群星.1992-滚石第一流台湾歌·12王牌大车拼【滚石】【WAV+CUE】
- 林子祥.1984-创作歌集【华纳】【WAV+CUE】
- 周汤豪.2010-周汤豪【华纳】【FLAC分轨】
- Mozart-TheStringQuintets-AmadeusQuartet,CecilAronowitz(2017)[24-44,1][WAV+CUE]
- JamesWilliamsDennisIrwin-Focus(2024,Red)[24-48]FLAC
- 藤泽麻衣《空みあげて》[WAV]
- 纯音入心系列纯音乐《中国古筝经典名曲》1CD[MP3][1.3GB]
- 纯音入心系列纯音乐《古筝新奏:岁月静好与筝语,细水流年与筝同》1CD[MP3][846.9MB]
- 670《脆弱敏感小女生》[320K/MP3][27.53MB]
- 曾琳.2011-好好爱我【南方】【WAV+CUE】
- 范晓萱.1995-RAIN【福茂】【WAV+CUE】