找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 912|回复: 0
打印 上一主题 下一主题

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

[复制链接]

2588

主题

2588

帖子

7694

积分

论坛元老

Rank: 8Rank: 8

积分
7694
跳转到指定楼层
楼主
发表于 2018-2-14 08:20:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

// 说明:PHP 写的加密函数,支持私人密钥
// 整理:http://www.jb51.net

function
keyED(
$txt
,$encrypt_key
)
   
{
   
    $encrypt_key
= md5
(
$encrypt_key
)
;   
    $ctr
=0
;   
    $tmp
= ""
;   
    for
(
$i
=0
;$i
(
$txt
)
;$i
++)
   
    {
   
        if
(
$ctr
==strlen
(
$encrypt_key
)
)
$ctr
=0
;   
        $tmp
.= substr
(
$txt
,$i
,1
)
^ substr
(
$encrypt_key
,$ctr
,1
)
;   
        $ctr
++;   
    }
   
    return
$tmp
;   
}
   

function
encrypt(
$txt
,$key
)
   
{
   
    srand
(
(
double)
microtime
(
)
*1000000
)
;   
    $encrypt_key
= md5
(
rand
(
0
,32000
)
)
;   
    $ctr
=0
;   
    $tmp
= ""
;   
    for
(
$i
=0
;$i
(
$txt
)
;$i
++)
   
    {
   
        if
(
$ctr
==strlen
(
$encrypt_key
)
)
$ctr
=0
;   
        $tmp
.= substr
(
$encrypt_key
,$ctr
,1
)
. (
substr
(
$txt
,$i
,1
)
^ substr
(
$encrypt_key
,$ctr
,1
)
)
;   
        $ctr
++;   
    }
   
    return
keyED(
$tmp
,$key
)
;
}
   

function
decrypt(
$txt
,$key
)
   
{
   
    $txt
= keyED(
$txt
,$key
)
;   
    $tmp
= ""
;   
    for
(
$i
=0
;$i
(
$txt
)
;$i
++)
   
    {
   
        $md5
= substr
(
$txt
,$i
,1
)
;   
        $i
++;   
        $tmp
.= (
substr
(
$txt
,$i
,1
)
^ $md5
)
;   
    }
   
    return
$tmp
;   
}
  

$key
= "www.yitu.org"
;   
$string
= "我是加密字符"
;   

// encrypt $string, and store it in $enc_text   
$enc_text
= encrypt(
$string
,$key
)
;   

// decrypt the encrypted text $enc_text, and store it in $dec_text   
$dec_text
= decrypt(
$enc_text
,$key
)
;   

print
"加密的 text : $enc_text
"
;   
print
"解密的 text : $dec_text
"
;   
?>


[/ol]
每一次加密后的结果是不一样的,大大加强了密码的安全性.
            
            
您可能感兴趣的文章:
  • PHP 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
  • discuz程序的PHP加密函数原理分析
  • php 的加密函数 md5,crypt,base64_encode 等使用介绍
  • 一个简洁的PHP可逆加密函数(分享)
  • PHP加密函数 Javascript/Js 解密函数
  • php常用hash加密函数
  • PHP的几个常用加密函数
  • PHP对称加密函数实现数据的加密解密
  • PHP内置加密函数详解
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端