浅谈discuz密码加密的方式
discuz注册时,会把密码按一个规则加密。
比如我的密码是123456
echo md5("123456");
会输出:
e10adc3949ba59abbe56e057f20f883e
而数据库的值却为:
7839dc9437013b5c11a5d86e9b8350e9
注意到:
有个叫salt的字段,其值为:d82a35
其实这是一个随机的字符串。
第一次md5后的值再加上盐值(salt)再进行md5,就是要得到的值了。
试一下
echo md5(md5('123456').'d82a35');
这回结果是:7839dc9437013b5c11a5d86e9b8350e9,是对的。
在php5.5之前的版本,并没有很好的加密机制。这是个不错的方式。已经大大地加强了密码的安全性了。
而php5.5中有更为可靠和方便的加密方式。喜欢钻研的朋友可以了解一下:
password_hash()
相关推荐
-
discuz authcode 经典php加密解密函数解析
原理如下,假如: 加密 明文:1010 1001 密匙:1110 0011 密文:0100 1010 得出密文0100 1010,解密之需和密匙异或下就可以了 解密 密文:0100 1010 密匙:1110 0011 明文:1010 1001 并没有什么高深的算法,密匙重要性很高,所以,关键在于怎么生成密匙. 那我们一起看下康盛的authcode怎么做的吧 复制代码 代码如下: // 参数解释 // $string: 明文 或 密文 // $operation:DECODE表示解密,其它表示加密
-
2个比较经典的PHP加密解密函数分享
项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理. 最常见的应用在用户登录以及一些API数据交换的场景. 笔者收录了一些比较经典的PHP加密解密函数代码,分享给大家.加密解密原理一般都是通过一定的加密解密算法,将密钥加入到算法中,最终得到加密解密结果. 1.非常给力的authcode加密函数,Discuz!经典代码(带详解): 复制代码 代码如下: function authcode
-
PHP 加密解密内部算法
将它们打包成一个文件就叫fun.php吧 复制代码 代码如下: <?php function passport_encrypt($txt, $key) { srand((double)microtime() * 1000000); $encrypt_key = md5(rand(0, 32000)); $ctr = 0; $tmp = ''; for($i = 0;$i < strlen($txt); $i++) { $ctr = $ctr == strlen($encrypt_key) ?
-
Discuz论坛密码与密保加密规则
Discuz密码加密规则: md5(md5('字符串').'固定字串'): 固定字符串是在注册用户的时候随机生成的,且保存在数据表pre_ucenter_members的salt字段中. 举例:假如密码为 123456789 ,固定字符串为jb51, 那么加密规则为:md5(md5('123456789').'jb51'); 得出的结果就是:96122ff0dd306c912aab15adccf21df1 Discuz密保加密规则: 加密过程是value的值先加密一次,比如我的提问是"驾驶执照
-
PHP中加密解密函数与DES加密解密实例
本文实例讲述了PHP中加密解密函数与DES加密解密的应用,分享给大家供大家参考.具体如下: 例子,php加密解密的例子 加密函数: 复制代码 代码如下: /* *功能:对字符串进行加密处理 *参数一:需要加密的内容 *参数二:密钥 */ function passport_encrypt($str,$key){ //加密函数 srand((double)microtime() * 1000000); $encrypt_key=md5(rand(0, 32000)); $ctr=0; $t
-
discuz加密解密函数使用方法和中文注释
复制代码 代码如下: <?php/** * $string 明文或密文 * $operation 加密ENCODE或解密DECODE * $key 密钥 * $expiry 密钥有效期 */ function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) { // 动态密匙长度,相同的明文会生成不同密文就是依靠动态密匙 // 加入随机密钥,可以令密文无任何规律,即便是原文和密钥完全相同,加密结果也会每
-
discuz程序的PHP加密函数原理分析
原理如下,假如: 加密 明文:1010 1001 密匙:1110 0011 密文:0100 1010 得出密文0100 1010,解密之需和密匙异或下就可以了 解密 密文:0100 1010 密匙:1110 0011 明文:1010 1001 并没有什么高深的算法,密匙重要性很高,所以,关键在于怎么生成密匙. 那我们一起看下康盛的authcode怎么做的吧 复制代码 代码如下: // 参数解释 // $string: 明文 或 密文 // $operation:DECODE表示解密,其它表示加密
-
php中AES加密解密的例子小结
aesDemo.php: 例子, 复制代码 代码如下: <?phprequire_once('./AES.php');//$aes = new AES();$aes = new AES(true);// 把加密后的字符串按十六进制进行存储//$aes = new AES(true,true);// 带有调试信息且加密字符串按十六进制存储$key = "this is a 32 byte key";// 密钥$keys = $aes->makeKey($key);$encod
-
php中base64_decode与base64_encode加密解密函数实例
本文实例讲述了php中base64_decode与base64_encode加密解密函数.分享给大家供大家参考.具体分析如下: 这两个函数在php中是用得对php代码进行加密与解密码的base64_encode是加密,而base64_decode是解密了,下面我们看两个简单实例. base64_encode语法:string base64_decode(string data); 复制代码 代码如下: $str='d3d3LmpiNTEubmV0IOiEmuacrOS5i+Wutg==';
-
php加密之discuz内容经典加密方式实例详解
本文实例讲述了php加密之discuz内容经典加密方式.分享给大家供大家参考,具体如下: 导读:有的时候,我们希望对表里的某些敏感字段进行加密,想了好长时间没有比较好的解决方案,后台在网上查了查,放心discuz论坛的这种方案对这种情况解决的不错,特copy过来,给大家分享一下,代码如下: header ( "Content-type:text/html;charset=UTF-8" ); echo $string='花园路888号'; echo '<hr/>加密有效期10
-
PHP可逆加密/解密函数分享
函数源码 复制代码 代码如下: function encrypt($data, $key) { $prep_code = serialize($data); $block = mcrypt_get_block_size('des', 'ecb'); if (($pad = $block - (strlen($prep_code) % $block)) < $block) { $prep_code .= str_repeat(chr($pad), $pad); } $encrypt = mcryp
-
PHP实现加密的几种方式介绍
PHP中的加密方式有如下几种 1. MD5加密 string md5 ( string $str [, bool $raw_output = false ] ) 参数 str -- 原始字符串. raw_output -- 如果可选的 raw_output 被设置为 TRUE,那么 MD5 报文摘要将以16字节长度的原始二进制格式返回. 这是一种不可逆加密,执行如下的代码 $password = '123456'; echo md5($password); 得到结果是e10adc3949
-
php用户密码加密算法分析【Discuz加密算法】
本文实例讲述了php用户密码加密算法.分享给大家供大家参考,具体如下: 今天在拿Discuz进行二次开发时需要在代码里验证Discuz的用户名密码,结果不小心掉进了坑里,因为Discuz的论坛有两张表来存储用户数据,一张在Discuz的数据库ultrax里面的pre_common_member里面,另一个是存储在了UCenter的数据库ucenter的uc_members表里.花了很大功夫在研究ultrax库里那张pre_common_member的数据,研究它的密码是如何生成的,结果搜了一下发
随机推荐
- jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
- vbs 解析json jsonp的方法
- Python如何获取系统iops示例代码
- Python实现从脚本里运行scrapy的方法
- python元组操作实例解析
- JavaScript通过prototype给对象定义属性用法实例
- asp.net DbProviderFactory的使用-示例
- .NET桥接模式讲解
- 详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
- 解析 thinkphp 框架中的部分方法
- PHP循环获取GET和POST值的代码
- Windows Server 2003下修改MySQL 5.5数据库data目录
- Go语言实现的一个简单Web服务器
- Java函数式编程(十一):遍历目录
- C#实现向指定文本文件添加内容的方法
- 针对Ruby的Selenium WebDriver安装指南
- javascript获取form里的表单元素的示例代码
- JavaScript中利用jQuery绑定事件的几种方式小结
- JAVA获取CLASSPATH路径的方法详解
- java.util.ArrayDeque类使用方法详解