Home php教程 php手册 PHP写的加密函数,支持私人密钥(详细介绍)

PHP写的加密函数,支持私人密钥(详细介绍)

Jun 13, 2016 am 11:49 AM
php introduce member function encryption exist key develop support hour yes system detailed part

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

复制代码 代码如下:


  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
     = 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.  




每一次加密后的结果是不一样的,大大加强了密码的安全性.
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Introduction to PEPU currency types Introduction to PEPU currency types Dec 12, 2024 am 11:43 AM

PEPU Coin is an ERC-20 token based on the Ethereum blockchain, operated by PEPU.io and used as the native token in its PEPU application.

Get the gate.io installation package for free Get the gate.io installation package for free Feb 21, 2025 pm 08:21 PM

Gate.io is a popular cryptocurrency exchange that users can use by downloading its installation package and installing it on their devices. The steps to obtain the installation package are as follows: Visit the official website of Gate.io, click "Download", select the corresponding operating system (Windows, Mac or Linux), and download the installation package to your computer. It is recommended to temporarily disable antivirus software or firewall during installation to ensure smooth installation. After completion, the user needs to create a Gate.io account to start using it.

7 PHP Functions I Regret I Didn't Know Before 7 PHP Functions I Regret I Didn't Know Before Nov 13, 2024 am 09:42 AM

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

List of top ten exchanges in the currency circle List of top ten exchanges in the currency circle Feb 21, 2025 pm 10:18 PM

The top ten exchanges in the currency circle are ranked by trading volume: Binance Ouyihuobi FTXKrakenCoinbaseGeminiBitfinexBybitGate.io

See all articles