PHPで書かれた暗号化関数、秘密鍵対応(詳細紹介)_PHPチュートリアル

WBOY
リリース: 2016-07-21 15:07:42
オリジナル
983 人が閲覧しました

PHP システムを開発する場合、メンバーシップ部分は必須のモジュールであることが多く、PHP の Mcrypt 暗号化ライブラリでは、多くの人が直接 md5() 暗号化を使用する必要があります。確かに安全ですが、md5 は不可逆暗号化であるため、パスワードを復元できないため、いくつかの不便な点があります。この記事では、使用すると便利な秘密鍵をサポートする暗号化関数を紹介します。
コードは次のとおりです。 :

コードをコピーします コードは次のとおりです:

  1.  



  2.  


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


  4. // 整理:http://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
    = 暗号化(
    $string
    ,$key
    <スパンクラス="br0">)
    ;  


  53.  


  54. // 暗号化されたテキストを復号化する $enc_textを $dec_text


  55. $dec_text
    = 復号化(
    $enc_text
    ,< span class="re0">$key
    )
    ;  


  56.  


  57. print
    < span class="st0">"加密なテキスト : $enc_text
    "
    ;  


  58. print
    < span class="st0">"解密なテキスト: $dec_text
    "
    ;  


  59. ?>


  60.  




一回加密後の結果は不一样的、大大加强了密码的安全性です

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327520.html技術記事 PHP システムの公開時、会議の一部は必須のモジュールですが、秘密暗号の処理はまた不面の問題であり、PHP の Mcrypt 加密库また必要な外部設定が必要であり、多くの人がいます...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!