快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

PHP如何实现加密函数并支持私人密钥-创新互联

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

成都创新互联专注于网站建设|成都网站改版|优化|托管以及网络推广,积累了大量的网站设计与制作经验,为许多企业提供了网站定制设计服务,案例作品覆盖成都湿喷机等行业。能根据企业所处的行业与销售的产品,结合品牌形象的塑造,量身开发品质网站。

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


  1.  



  2.  


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


  4. // 整理:/tupian/20230522/www.jb51.net


  5.  


  6. function
     keyED(
    $txt
    ,$encrypt_key
    )
      


  7. {
      


  8.     $encrypt_key
     = md5
    (
    $encrypt_key
    )
    ;  


  9.     $ctr
    =0
    ;  


  10.     $tmp
     = ""
    ;  


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


  12.     {
      


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


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


  15.         $ctr
    ++;  


  16.     }
      


  17.     return
     $tmp
    ;  


  18. }
      


  19.  


  20. function
     encrypt(
    $txt
    ,$key
    )
      


  21. {
      


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


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


  24.     $ctr
    =0
    ;  


  25.     $tmp
     = ""
    ;  


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


  27.     {
      


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


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


  30.         $ctr
    ++;  


  31.     }
      


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


  33. }
      


  34.  


  35. function
     decrypt(
    $txt
    ,$key
    )
      


  36. {
      


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


  38.     $tmp
     = ""
    ;  


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


  40.     {
      


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


  42.         $i
    ++;  


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


  44.     }
      


  45.     return
     $tmp
    ;  


  46. }
     


  47.  


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


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


  50.  


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


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


  53.  


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


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


  56.  


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

    ;  


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

    ;  


  59. ?>
     


  60.  




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


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


当前题目:PHP如何实现加密函数并支持私人密钥-创新互联
网页路径:http://6mz.cn/article/dgepge.html

其他资讯