首页 后端开发 php教程 php用户密码加密算法解析

php用户密码加密算法解析

May 28, 2018 am 11:50 AM
php 算法 解析

常见的加密算法可以分成三类,对称加密算法,非对称加密算法和Hash算法。

对称加密

    指加密和解密使用相同密钥的加密算法。对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性。假设两个用户需要使用对称加密方法加密然后交换数据,则用户最少需要2个密钥并交换使用,如果企业内用户有n个,则整个企业共需要n×(n-1) 个密钥,密钥的生成和分发将成为企业信息部门的恶梦。对称加密算法的安全性取决于加密密钥的保存情况,但要求企业中每一个持有密钥的人都保守秘密是不可能的,他们通常会有意无意的把密钥泄漏出去——如果一个用户使用的密钥被入侵者所获得,入侵者便可以读取该用户密钥加密的所有文档,如果整个企业共用一个加密密钥,那整个企业文档的保密性便无从谈起。

常见的对称加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES

这篇文章主要介绍了php用户密码加密算法,较为详细的分析了Discuz加密算法的原理,并结合实例形式对比了.net算法的实现方法总结了php进行用户加密的流程与实现方法,需要的朋友可以参考下

Discuz的密码加密算法其实就是两次MD5加密,首先用明文进行一次加密,之后随机生成一个salt,再把第一次的密文后面添加salt作为明文再进行一次MD5加密。salt保存在uc_members表里,可以通过用户名进行获取。

像这样:

MD5(MD5(明文)+salt)

下面是.net的实现代码:

string GetDiscuzPWString(string sourceStr, string salt)
{
   return GetMd5Hash(string.Concat(GetMd5Hash(sourceStr),salt));
}
string GetMd5Hash(string input)
{
  MD5 md5Hasher = MD5.Create();
  byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));
  StringBuilder sBuilder = new StringBuilder();
  for (int i = 0; i < data.Length; i++)
  {
    sBuilder.Append(data[i].ToString("x2"));
  }
  return sBuilder.ToString();
}

总结密码判断方式:

① 要安装UC

② 打开数据库找到uc_members 这表,寻找最后一个字段"salt ",复制里面的值

③ 伪代码:

$s=md5(md5("密码")."salt字段的值");
echo $s;

④ 用IF判断

⑤ 再说一次!那个随机是6位数!

以上是php用户密码加密算法解析的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Stock Market GPT

Stock Market GPT

人工智能驱动投资研究,做出更明智的决策

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

如何在PHP中设置默认时区? 如何在PHP中设置默认时区? Sep 26, 2025 am 06:22 AM

setThedefaultTimeZoneInphpusingdate_default_timezone_set('America/new_york'); withAvalidIdentifierLikeLikeLikeUtCoreUrope/londontoensureConsistentDate/timeHandLinglingAcconAccOssentDate/timeHandlingAccrossFunctionsIonsandEnvorments和Envorments。

如何在PHP中找到两个阵列的交点? 如何在PHP中找到两个阵列的交点? Sep 26, 2025 am 06:23 AM

使用array_intersect()函数可找到两个数组的交集,该函数返回同时存在于各数组中的元素,键名保留自第一个数组。例如:$arr1=['apple','banana','orange'];$arr2=['banana','kiwi','apple'];结果为['apple','banana']。

如何调试PHP脚本? 如何调试PHP脚本? Sep 26, 2025 am 05:59 AM

启用eNableRoreportingwithini_setAndError_reportingTodisPlayAllerrrors,usevar_dumporprint_rtoinspectvariables,checkphpandserverlogsforhiddenissues,andleveragexdebuggugwithanideforadebugwithanideforadvancedDebuggingDebugging。

如何使用PHP将数据插入MySQL表中? 如何使用PHP将数据插入MySQL表中? Sep 26, 2025 am 03:03 AM

建立PDO数据库连接,确保设置异常模式;2.使用预处理语句插入数据,通过bindParam绑定参数防止SQL注入;3.执行语句并处理错误,脚本结束自动关闭连接。安全插入数据的关键是连接、准备、绑定和执行。

漫天星漫画最新版独家发布 漫天星漫画官方无广告安装器 漫天星漫画最新版独家发布 漫天星漫画官方无广告安装器 Sep 26, 2025 pm 12:18 PM

漫天星漫画最新版提供无广告纯净体验,支持全天候更新、多模式阅读及智能书签,内置高效缓存可离线阅读,整合全球国漫日漫韩漫资源,涵盖奇幻都市等多题材,搭配动态分类与个性推荐,界面简洁加载快,含社区互动功能。

漫天星漫画完整版入口_满天星漫画去广告特别版链接 漫天星漫画完整版入口_满天星漫画去广告特别版链接 Sep 28, 2025 am 10:30 AM

漫天星漫画完整版入口为https://www.mantianxingmh.com,平台涵盖热血、恋爱、悬疑、科幻等多种题材,资源丰富且更新及时,支持分类检索;提供高清画质、多种翻页模式、自定义背景与亮度调节,具备护眼模式优化阅读体验;用户可创建书架、保存阅读记录、离线下载并实现跨设备同步进度。

如何使用PHP删除文件? 如何使用PHP删除文件? Sep 27, 2025 am 06:08 AM

使用unlink()函数可删除PHP中的文件,需确保文件路径正确且服务器有写权限,删除前应验证文件存在并防止路径被恶意操控。

如何在PHP中使用面向对象的编程(OOP)? 如何在PHP中使用面向对象的编程(OOP)? Sep 28, 2025 am 03:26 AM

oopinphporganizesCodeIntOrsableClassesandObjects.1.ClassesdefinePropertiesandMethods,IntantiatedVia $ this.2.Constructors(__构造)initializeObjectsproperties.3.accessmodifiers(公共,私人,私人,procected)ControlVisibility.4.Inheritance(Hersheritance(Extents))允许

See all articles