千家信息网

PHP如何实现加密函数并支持私人密钥

发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,这篇文章主要为大家展示了"PHP如何实现加密函数并支持私人密钥",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"PHP如何实现加密函数并支持私人密钥"这篇文章
千家信息网最后更新 2024年11月14日PHP如何实现加密函数并支持私人密钥

这篇文章主要为大家展示了"PHP如何实现加密函数并支持私人密钥",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"PHP如何实现加密函数并支持私人密钥"这篇文章吧。

在开发PHP系统时,会员部分往往是一个必不可少的模块,而密码的处理又是不得不面对的问题,PHP 的 Mcrypt 加密库又需要额外设置,很多人都是直接使用md5()函数加密,这个方法的确安全,但是因为md5是不可逆加密,无法还原密码,因此也有一些不便之处,本文介绍加密函数支持私钥,用起来还是不错的.
代码如下:
PHP:


  1.  





  2. // 说明:PHP 写的加密函数,支持私人密钥


  3. // 整理:https://www.jb51.net


  4.  


  5. function
    keyED(
    $txt
    ,$encrypt_key
    )


  6. {


  7. $encrypt_key
    = md5
    (
    $encrypt_key
    )
    ;


  8. $ctr
    =0
    ;


  9. $tmp
    = ""
    ;


  10. for
    (
    $i
    =0
    ;$i
    (
    $txt
    )
    ;$i
    ++)


  11. {


  12. if
    (
    $ctr
    ==strlen
    (
    $encrypt_key
    )
    )
    $ctr
    =0
    ;


  13. $tmp
    .= substr
    (
    $txt
    ,$i
    ,1
    )
    ^ substr
    (
    $encrypt_key
    ,$ctr
    ,1
    )
    ;


  14. $ctr
    ++;


  15. }


  16. return
    $tmp
    ;


  17. }


  18.  


  19. function
    encrypt(
    $txt
    ,$key
    )


  20. {


  21. srand
    (
    (
    double)
    microtime
    (
    )
    *1000000
    )
    ;


  22. $encrypt_key
    = md5
    (
    rand
    (
    0
    ,32000
    )
    )
    ;


  23. $ctr
    =0
    ;


  24. $tmp
    = ""
    ;


  25. for
    (
    $i
    =0
    ;$i
    (
    $txt
    )
    ;$i
    ++)


  26. {


  27. if
    (
    $ctr
    ==strlen
    (
    $encrypt_key
    )
    )
    $ctr
    =0
    ;


  28. $tmp
    .= substr
    (
    $encrypt_key
    ,$ctr
    ,1
    )
    . (
    substr
    (
    $txt
    ,$i
    ,1
    )
    ^ substr
    (
    $encrypt_key
    ,$ctr
    ,1
    )
    )
    ;


  29. $ctr
    ++;


  30. }


  31. return
    keyED(
    $tmp
    ,$key
    )
    ;


  32. }


  33.  


  34. function
    decrypt(
    $txt
    ,$key
    )


  35. {


  36. $txt
    = keyED(
    $txt
    ,$key
    )
    ;


  37. $tmp
    = ""
    ;


  38. for
    (
    $i
    =0
    ;$i
    (
    $txt
    )
    ;$i
    ++)


  39. {


  40. $md5
    = substr
    (
    $txt
    ,$i
    ,1
    )
    ;


  41. $i
    ++;


  42. $tmp
    .= (
    substr
    (
    $txt
    ,$i
    ,1
    )
    ^ $md5
    )
    ;


  43. }


  44. return
    $tmp
    ;


  45. }


  46.  


  47. $key
    = "www.yitu.org"
    ;


  48. $string
    = "我是加密字符"
    ;


  49.  


  50. // encrypt $string, and store it in $enc_text


  51. $enc_text
    = encrypt(
    $string
    ,$key
    )
    ;


  52.  


  53. // decrypt the encrypted text $enc_text, and store it in $dec_text


  54. $dec_text
    = decrypt(
    $enc_text
    ,$key
    )
    ;


  55.  


  56. print
    "加密的 text : $enc_text
    "

    ;


  57. print
    "解密的 text : $dec_text
    "

    ;


  58. ?>


  59.  




每一次加密后的结果是不一样的,大大加强了密码的安全性.

以上是"PHP如何实现加密函数并支持私人密钥"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0