PHP 加密解密和解决URL传输问题

https://blog.csdn.net/iteye_17658/article/details/82675085

 

base64 加密和解密


  1. <meta charset="utf-8">
  2. <?php
  3. $str = "http://www.onestopweb.cn";
  4. $en=base64_encode($str);
  5. $de=base64_decode($en);
  6. echo "原型:$str<br>";
  7. echo "加密后:$en<br>";
  8. echo "解密后:$de<br>";
  9. ?>

效果图:

 

解决URL传输的问题


  1. <meta charset="utf-8">
  2. <?php
  3. //urlencode 将字符串以 URL 编码。
  4. $str = "http://www.onestopweb.cn";
  5. $urlen = urlencode($str);
  6. $urlde = urldecode($urlen);
  7. //URL传输请使用下面这种
  8. //rawurlencode 将字符串编码成 URL 专用格式。
  9. $rawurlen = rawurlencode($str);
  10. $rawurlde = rawurldecode($rawurlen);
  11. echo "原型:$str<br>";
  12. echo "urlencode加密后:$urlen<br>";
  13. echo "urldecode解密后:$urlde<br>";
  14. echo "rawurlencode加密后:$rawurlen<br>";
  15. echo "rawurldecode解密后:$rawurlde<br>";
  16. ?>

效果图:

 

有点复杂的加密解密和解决URL传输问题


  1. <meta charset="utf-8">
  2. <?php
  3. function encrypt($data, $key) {
  4. $prep_code = serialize($data);
  5. $block = mcrypt_get_block_size('des', 'ecb');
  6. if (($pad = $block - (strlen($prep_code) % $block)) < $block) {
  7. $prep_code .= str_repeat(chr($pad), $pad);
  8. }
  9. $encrypt = mcrypt_encrypt(MCRYPT_DES, $key, $prep_code, MCRYPT_MODE_ECB);
  10. return base64_encode($encrypt);
  11. }
  12. function decrypt($str, $key) {
  13. $str = base64_decode($str);
  14. $str = mcrypt_decrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB);
  15. $block = mcrypt_get_block_size('des', 'ecb');
  16. $pad = ord($str[($len = strlen($str)) - 1]);
  17. if ($pad && $pad < $block && preg_match('/' . chr($pad) . '{' . $pad . '}$/', $str)) {
  18. $str = substr($str, 0, strlen($str) - $pad);
  19. }
  20. return unserialize($str);
  21. }
  22. $key = 'login';
  23. $data = array('id' => 100, 'username' => 'chaoyi', 'password' => '123456');
  24. $snarr = serialize($data);
  25. $en = encrypt($data, $key);
  26. $de = decrypt($en, $key);
  27. echo "加密原型:"; print_r($data);
  28. echo "<br>密钥:$key <br>
  29. 加密结果:$en <br>
  30. 解密结果:";print_r($de);
  31. $en2 = rawurlencode(encrypt($data, $key));
  32. $de2 = decrypt(rawurldecode($en2), $key);
  33. echo "<br>可以进行URL传输的加密:".$en2."<br>";
  34. echo "转输后进行解密:";print_r($de2);
  35. ?>

效果图:

 

 

 

相关推荐

网友评论(0)