`
swengineer
  • 浏览: 42279 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PHP SALT 密码生成与验证类

    博客分类:
  • PHP
 
阅读更多
<?php
/**
 * 密码生成类,额外添加salt,使密码更安全
 * 
 * 如果需要可分别编写前后台验证规则
 * 
 * @author Robot
 * @version 1.0
 * @example
 * 	Password::make($password);
 * 	返回结果:
 * 	Array ( [salt] => r8lbCQS4ng [password] => a594b5830ca27ee621d1011794d61082e4ee8a00 )
 * 	salt:随机salt
 *  password:加密密码字符串
 *
 */
class Utils_Password
{
	public static function make($password)
	{
		return self::rule($password);
	}
	
	/**
	 * DB 密码验证
	 * @param string $password	用户输入密码
	 * @param string $dbPassword	DB中存储的密码加密串
	 * @param string $salt		种子
	 * @return boolean	true-验证成功 	false-验证失败
	 */
	public static function auth($password,$dbPassword,$salt)
	{
		return self::getSha1($password, $salt)==$dbPassword;
	}
	/**
	 * 加密算法
	 * @param string $password	密码
	 * @param string $salt		种子
	 * @return string	密码串
	 */
	private static function getSha1($password,$salt)
	{
		return sha1(md5(md5($password).$salt));
	}
	
	/**
	 * 前台加密算法
	 * @param string $password	密码
	 * @param string $salt		种子
	 * @return string	密码串
	 */
	private static function rule($password)
	{
		$salt = RandomKey::generate_r(10);
		return array("salt"=>$salt,"password" => self::getSha1($password, $salt));
	} 
	
}

 

分享到:
评论

相关推荐

    QQ账号密码验证PHP

    QQ账号密码验证PHP是一个涉及到网络身份...总的来说,QQ账号密码验证PHP涉及到Web开发、服务器端编程、数据库交互以及网络安全等多个IT领域的重要知识点。理解这些概念对于构建安全的在线服务和防止恶意攻击至关重要。

    PHP 验证登陆类分享

    该类将登录验证与数据库查询逻辑紧密地结合起来,方便开发者快速部署一个安全的登录系统。 为了更好地理解本文分享的PHP登录验证类的使用方法和内部实现,我们需要关注以下几个关键点: 1. 类的外部设置:在Auth类...

    基于PHP的PDMPHP密码管理系统源码.zip

    在密码管理系统的开发中,PHP可以用于创建动态网页,处理表单数据,与数据库进行交互,以及实现安全的密码存储机制,如哈希加盐(hashing with salt)来保护用户的敏感信息。 【压缩包子文件的文件名称列表】中的...

    基于PHP的生日密码查询工具v1.2源码.zip

    这个工具可能用于帮助用户根据生日日期生成或验证特定类型的密码,比如基于日期的简单密码。PHP是一种广泛使用的开源服务器端脚本语言,特别适合于Web开发,可以嵌入到HTML中使用。 【描述】中的信息虽然简洁,但...

    PHP中使用crypt()实现用户身份验证

    如果存在,我们将取出存储的密码(已加密),并使用`crypt()`函数和用户输入的密码生成一个新的加密值。比较这两个加密值,如果一致则允许用户登录,否则提示重新登录。如果用户名不存在,那么可能是新用户,此时将...

    php100 2012版 17集CodeIgniter框架教程(3)密码

    此外,还可以结合使用盐值(Salt)进一步增加密码的复杂度,防止彩虹表攻击。 ### 密码验证流程 密码验证过程通常包括以下几个步骤: 1. 用户输入用户名和密码。 2. 服务器端从数据库中检索对应的密码哈希值。 3. ...

    深入密码加salt原理的分析

    所谓salt(盐值),就是一些随机生成的数据,它们被添加到用户密码中,然后才进行散列处理。这样,即使两个用户使用了相同的密码,由于他们被赋予了不同的salt值,其最终的散列结果也将不同。这有效地增加了密码的...

    PHP生成自定义长度随机字符串的函数分享

    密码散列函数如`password_hash()`和`password_verify()`提供了更安全的方式来处理密码,因为它们使用了盐值(salt)和哈希算法,使得即使是相同的输入,在每次处理时也会生成不同的散列值。 最后,尽管这个函数在...

    passwd

    "pass"和"passwd"可能是指与密码处理相关的功能,而"Unix wd风格"可能指的是类库遵循了Unix的工作方式或者设计哲学,比如简洁、模块化和可组合性。 压缩包内的文件列表: 1. "说明.htm":这可能是一个HTML格式的...

    Salt:用于PHP的NaCl密码库

    **Salt: 用于PHP的NaCl密码库** `Salt` 是一个专为PHP设计的加密库,它基于 `NaCl ( Networking and Cryptography library )`,这是一个由著名密码学家丹·布兰科(Dan Bernstein)开发的安全加密库。NaCl的目标是...

    php语言数据加密应用

    当用户登录时,我们需要验证他们输入的密码是否与数据库中存储的加密密码匹配。这通常涉及以下几个步骤: 1. 获取用户输入的密码。 2. 使用相同的salt重新计算密码哈希值。 3. 比较新计算出的哈希值与数据库中存储...

    PHP 注册登录系统

    在这个系统中,可能采用了哈希加盐(Hashing with Salt)的方式对用户密码进行加密存储,这是一种安全的存储密码的方法,能防止即使数据库被泄露,用户密码也不易被破解。 登录过程通常包括以下几个步骤: 1. 用户...

    页面密码加密传输代码

    6. **盐值(Salt)**:在密码存储中,盐值是一种随机数据,与原始密码结合后再进行哈希运算,增加了破解的难度。在PHP中,可以使用`password_hash`函数结合盐值进行密码存储。 7. **双因素认证(2FA)**:为了增强...

    详解PHP处理密码的几种方式

    PHP 5.5引入的Password Hashing API是目前推荐的密码处理方式,因为它提供了更高级别的安全性与便捷性。API主要包括以下几个函数: 1. `password_hash()`: 用于加密密码,自动处理盐值和成本参数。 2. `password_...

    修改discuz用户密码的方法

    记得同时更新与密码相关的其他字段,如`secques`(安全问题)和`passwordsalt`(盐值)。 2. **使用工具辅助**: - 提供的`tools.php`文件可能是Discuz! 提供的一个管理工具,用于协助管理员执行一些后台操作,包括...

    Discuz7.0注册登录分析

    当用户输入密码后,系统首先对原始密码进行MD5加密,然后将得到的MD5值与一个随机生成的6位字符串($salt)连接起来,再次进行MD5加密。这样生成的最终密码是不可逆的,增加了密码的安全性。在代码中,这一过程如下...

    PHP安全编程之加密功能.pdf

    这个脚本首先检查是否有用户提供用户名和密码,然后从数据库中获取用户记录,并使用`crypt()`函数对比给定的密码是否与存储的加密密码匹配。匹配成功则授予访问权限,否则拒绝访问。 总的来说,PHP的加密功能提供了...

    php用户密码加密算法分析【Discuz加密算法】

    例如,使用PHP内置的`password_hash()`和`password_verify()`函数来处理密码的加密与验证。这些函数使用了更强的算法,比如bcrypt,来保护密码的安全性。 总结来说,php用户密码加密算法分析不仅揭示了Discuz论坛...

    PHP_JiaMI.rar_php 加密_php加密

    `password_hash()`是用于存储和验证用户密码的安全方法,它结合了bcrypt算法和随机盐。`openssl_encrypt()`则允许使用OpenSSL库进行对称加密。 2. **加密类型**: - **对称加密**:如AES(Advanced Encryption ...

    PHP 加密与解密

    `password_hash()`函数是PHP 5.5引入的,专为密码存储设计,支持bcrypt算法,提供加盐(salt)功能,能有效抵御彩虹表攻击。 接着,我们来讨论解密技术。PHP提供了`openssl_decrypt()`和`mcrypt_decrypt()`函数来...

Global site tag (gtag.js) - Google Analytics