Heim  >  Artikel  >  Backend-Entwicklung  >  php写的Passport加密函数

php写的Passport加密函数

WBOY
WBOYOriginal
2016-07-25 09:07:21828Durchsuche
  1. /**

  2. * Passport 加密函数
  3. *
  4. * @param string 等待加密的原字串
  5. * @param string 私有密匙(用于解密和加密)
  6. *
  7. * @return string 原字串经过私有密匙加密后的结果
  8. */
  9. function passport_encrypt($txt, $key) {
  10. // 使用随机数发生器产生 0~32000 的值并 MD5()

  11. srand((double)microtime() * 1000000);
  12. $encrypt_key = md5(rand(0, 32000));
  13. // 变量初始化

  14. $ctr = 0;
  15. $tmp = '';
  16. // for 循环,$i 为从 0 开始,到小于 $txt 字串长度的整数

  17. for($i = 0; $i // 如果 $ctr = $encrypt_key 的长度,则 $ctr 清零
  18. $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
  19. // $tmp 字串在末尾增加两位,其第一位内容为 $encrypt_key 的第 $ctr 位,
  20. // 第二位内容为 $txt 的第 $i 位与 $encrypt_key 的 $ctr 位取异或。然后 $ctr = $ctr + 1
  21. $tmp .= $encrypt_key[$ctr].($txt[$i] ^ $encrypt_key[$ctr++]);
  22. }
  23. // 返回结果,结果为 passport_key() 函数返回值的 base64 编码结果

  24. return base64_encode(passport_key($tmp, $key));
  25. }
  26. ?>
复制代码

如果想对加密后的内容进行解密,您可以参考 php写的passport解密函数。



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn