国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php源碼分析之DZX1.5加密解密函數authcode用法

2024-05-04 23:36:21
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了php源碼分析之DZX1.5加密解密函數authcode用法,實例分析了DZX1.5中authcode函數加密與解密的使用技巧,需要的朋友可以參考下

本文實例講述了php源碼分析之DZX1.5加密解密函數authcode用法。分享給大家供大家參考。具體分析如下:

 

 
  1. <?php 
  2. $authkey = ''
  3. /** 
  4. * @param string $string: 輸入的需要加密(或解密)的明文(或密文) 
  5. * @param string $operation: 'DECODE'或其它,其中默認表示解密,輸入其它表示加密 
  6. * @param string $key: 加解密密鑰 
  7. * @param int $expiry: 有效期 
  8. */ 
  9. function authcode($string$operation = 'DECODE'$key = ''$expiry = 0) { 
  10. global $authkey
  11. $ckey_length = 4; 
  12. $key = md5($key != '' ? $key : $authkey); 
  13. $keya = md5(substr($key, 0, 16)); 
  14. $keyb = md5(substr($key, 16, 16)); 
  15. $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : ''
  16. $cryptkey = $keya.md5($keya.$keyc); 
  17. $key_length = strlen($cryptkey); 
  18. $string = $operation == 'DECODE' ? base64_decode(substr($string$ckey_length)) : sprintf('%010d'$expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string
  19. $string_length = strlen($string); 
  20. $result = ''
  21. $box = range(0, 255); 
  22. $rndkey = array(); 
  23. for($i = 0; $i <= 255; $i++) { 
  24. $rndkey[$i] = ord($cryptkey[$i % $key_length]); 
  25. for($j = $i = 0; $i < 256; $i++) { 
  26. $j = ($j + $box[$i] + $rndkey[$i]) % 256; 
  27. $tmp = $box[$i]; 
  28. $box[$i] = $box[$j]; 
  29. $box[$j] = $tmp
  30. for($a = $j = $i = 0; $i < $string_length$i++) { 
  31. $a = ($a + 1) % 256; 
  32. $j = ($j + $box[$a]) % 256; 
  33. $tmp = $box[$a]; 
  34. $box[$a] = $box[$j]; 
  35. $box[$j] = $tmp
  36. $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256])); 
  37. if($operation == 'DECODE') { 
  38. if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) { 
  39. return substr($result, 26); 
  40. else { 
  41. return ''
  42. else { 
  43. return $keyc.str_replace('='''base64_encode($result)); 
  44. $str = '1234'
  45. $key = '1234'
  46. echo "明文:".$str
  47. echo "<br />"
  48. echo "密鑰:".$key
  49. $encode = authcode($str,'11',$key); 
  50. echo "<br />"
  51. echo "加密后的密文:".$encode
  52. echo "<br />"
  53. $decode = authcode($encode,'DECODE',$key); 
  54. echo "解密后的明文:".$decode
  55. /*End of php*/ 

運行結果如下:

明文:1234

密鑰:1234

加密后的密文:a52f67eXZGVy0HtQBo4vOREhq3WxnL6E2zlx75JGfoJW

解密后的明文:1234

希望本文所述對大家的php程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台南县| 盐津县| 古田县| 年辖:市辖区| 黑龙江省| 仙居县| 连云港市| 樟树市| 巍山| 百色市| 深水埗区| 蚌埠市| 大冶市| 名山县| 罗山县| 江油市| 工布江达县| 于都县| 根河市| 洛浦县| 柳江县| 罗山县| 和平区| 贵定县| 郧西县| 石河子市| 定结县| 永新县| 长武县| 新余市| 岚皋县| 湾仔区| 辽阳县| 兰考县| 剑阁县| 鄱阳县| 黄骅市| 子洲县| 黄浦区| 岑巩县| 台东县|