前段时间很多网站被撞库了,我们也不例外。之前用的密码一次MD5加密的算法已经不安全了,因为有太多的地方(http://www.cmd5.com/)可以暴力爆破MD5的加密算法。为了解决这个安全问题,决定对用户密码的加密强度进行改进,将原先的唯一MD5方式进行提升,对密码进行两次的MD5加密,在进行第二次MD5加密的时候,对第一次的MD5的值再加点盐(SALT)。因为煮菜的时候每次放的盐都是不一样的,所以这个$salt是个随机字符,每个用户都不一样。
新用户注册:
1、获取SALT
$salt = substr(uniqid(rand()),-6);
2、密码通过SALT的组合加密方式
$password = md5(md5($password).$salt);
3、在用户表里增加一个salt字段,把随机生成的$salt值和用户名密码一起存到表里去
$sql = "INSERT INTO sdb_members SET uname='{$uname}',password='{$password}',salt='{$salt}'";
用户登录:
1、通过uname去表里找出对应的会员表信息
$sql = "SELECT * sdb_members SET uname='{$uname}'";
2、提取该uname的密码和SALT值,然后按通过的算法进行比对
//$password1是用户表里存的值,$password2是前台输入的值
$password1 = md5(md5($password2).$salt);
大体的思路就是这样。
分享到:
相关推荐
在IT领域,尤其是网络安全和数据保护方面,C# salt+hash加密是一种常用的方法,用于存储用户的敏感信息,如密码。这种技术确保即使数据库被泄露,攻击者也无法轻易地获取到原始密码,增加了密码的安全性。 首先,...
MD5-2、MD5-3和MD5-4可能分别展示了不同加密方式或不同输入数据的MD5值,比如使用盐值(salt)增强加密的安全性。 盐值是一种随机数据,附加到原始密码之前或之后再进行MD5加密,这样即使相同的密码也会产生不同的...
为了确保密码安全,通常会采用哈希加盐(Hash with Salt)的方法,即将原始密码与一个随机的盐值组合,然后进行哈希运算,将结果存储在数据库中。这样即使数据库被泄露,攻击者也无法直接获取到原始密码,因为他们...
总的来说,PBE是一种结合了用户密码和随机盐值的加密方式,提供了相对较高的安全性,尤其适用于那些需要简单加密方案但又不希望密码直接参与加密过程的场景。然而,需要注意的是,PBE仍然依赖于用户选择的强密码,...
3. 结果合并:所有加密后的块组合成最终的密文。 解密过程则是加密的逆操作,使用相同的密钥和初始化向量进行解密。 对于跨平台通信,各个语言实现的加密算法必须完全一致,这意味着密钥生成、加密过程和解密过程...
但需要注意的是,这种组合并不提供足够的安全性,因为MD5的弱点依然存在,而Base64只是编码手段,不具备加密性质。 在实际应用中,更先进的加密解密技术已经出现,如SHA系列(SHA-256、SHA-3等)、AES(高级加密...
HTTPS是HTTP(超文本传输协议)与SSL/TLS(安全套接层/传输层安全)的组合,它能对通信内容进行加密,保护用户信息不被第三方窃取。服务器需要拥有有效的SSL证书,以建立安全的HTTPS连接。 2. **MD5和SHA哈希算法**...
MD5的过程包括分割、初始化、迭代和组合四个步骤,通过一系列复杂的数学运算确保了输入数据的微小变化都会导致哈希值的显著不同,这被称为雪崩效应。 2. **JavaScript中的MD5库** - **crypto-js**: 这是一个完整的...
然后这128位会被分成四个32位块,每个块进一步转化为一个32位的十六进制数,最后组合成一个32位长度的MD5摘要。 在Java中,我们可以使用`java.security.MessageDigest`类来实现MD5加密。首先,需要创建`...
Base64是一种将任意二进制数据转化为可打印ASCII字符的编码方式。它的原理是将每3个字节(24位)分为4组,每组6位,然后将这6位转换为对应的ASCII字符,不足的部分用"="填充。在JavaScript中,可以使用`btoa()`和`a...
本实例源码就是关于如何在C#中利用CPU和硬盘信息生成这样的机器码,并涉及加密和解密的技术。 首先,让我们了解如何在C#中获取CPU和硬盘的信息。在C#中,我们可以使用.NET Framework提供的System.Management命名...
解密方法通常需要根据加密方式来定制,包括: - **枚举**:尝试所有可能的密钥或参数,直到找到正确的解密结果。 - **自定义逆向算法**:分析加密算法,编写逆向程序来解密。 - **可逆向**:如果加密算法是可逆的,...
4. **定期更新加密算法**:随着技术的发展,旧的加密方式可能变得不再安全,应定期评估并更新加密策略。 本实例源码"《0528》C#加密机制实例源码-口令加密Exe"很可能会涵盖这些概念,并提供实际的编码示例,帮助...
这可能涉及到文件的分块处理、加盐值(salt)增加安全性,或者使用哈希函数验证文件完整性。 4. **用户界面**:为了让用户能够方便地加密和解密文件,源代码中还会包含用户界面的设计,可能是图形界面(GUI)或者...
根据提供的文件信息,我们可以深入探讨MD5加密技术及其在Java中的实现细节。...虽然MD5在安全性方面存在一定的局限性,但在某些对安全性要求不高的应用场景中,仍然可以作为一种有效的加密方式使用。
2. **ASP中的口令加密方式** - **内置函数MD5或SHA1**: ASP中可以使用内置的`Server.CreateObject("System.Text.RegularExpressions.RegEx")`创建正则表达式对象,配合MD5或SHA1算法进行口令哈希。哈希函数将任意...
4. **结果组合**:经过所有数据块的处理后,A、B、C、D的最终值就是MD5的哈希值,转换成16进制字符串即为32位的摘要。 描述中提到“程序完全可以运行”,暗示存在一个实现MD5密码加密的代码示例。在实际应用中,...
需要注意的是,对于密码存储,现在推荐使用更安全的哈希算法,如SHA-256,且通常会结合加盐(Salt)和多次迭代(如bcrypt或scrypt)等方法来提高安全性。这样做可以增加破解的难度,即使攻击者获取了哈希库,也无法...
QQ的登录口令加密通常采用一种混合加密算法,它可能包括对称加密(如DES或AES)和非对称加密(如RSA)的组合。在QQ 2005贺岁版中,可能会有一个特定的加盐(salt)过程,即在原始密码上附加一个随机字符串,增加破解...