PHP中的MD5加密

PHP中的MD5加密
评论:总结:密码学是研究编制密码技术科学(我们叫它编码的简称)和解密(我们称之为解密:解密)。研究密码变化的客观规律,应用于编制密码保密通信。它被称为编码,而应用解码密码来获取通信智能称为解密,统称为密码学,一般来说,人们将能够理解文本

摘要:密码学是研究编译密码(我们称之为加密和编码)和破译密码(我们称之为解密(解密))的技术科学。它被称为编码和解码算法,获取通信情报的应用程序称为解密,统称为密码。通常,人们称之为理解文本为明文;将明文变成不可理解的文本的文本称为密文,明文变换成密文的过程称为加密;逆过程中,将密文到明文的过程称为解密。
PHP中提供了哪些数据加密功能
PHP提供了用于完成加密功能的地穴()函数
字符串(字符串加密input_string {,}弦盐)
这个函数完成的功能称为单向加密,即它可以加密一些明确的规范,但不能将密码到原代码。一旦单向加密到第三人手里的密码,因为它是不可恢复的明文,所以没有大用。当验证用户输入的口令,用户的输入也是单向算法。如果输入与存储的加密密码匹配,则输入密码必须正确
的input_string该函数的参数是一个字符串,需要进行加密。第二参数盐是一个位串,从而影响加密的密码,并进一步排除被称为预计算攻击的可能性。默认情况下,PHP使用一个2个字符的DES干扰串,如果你的系统使用MD5,它将使用一个12字符的干扰字符串,我们可以发现干扰字符串该系统将通过执行以下命令的长度:
打印系统所使用的干扰字符串的长度为:。crypt_salt_length;
地穴()支持四种算法,以下是它支持的算法和相应盐参数的长度:
{注:下面的表单}
盐长算法
crypt_std_des 2(默认)
crypt_ext_des 9-character
crypt_md5 12字开头的1美元
crypt_blowfish 16字开头的2美元
PHP的数据加密功能如何应用于用户身份验证
例如,我们使用PHP程序限制对目录的访问,只允许注册用户访问该目录,我们将数据存储在MySQL数据库的表中(命名为成员):
创建表成员(
>用户名char(14)不为空,
>密码char(32)不为空,
>主键(用户名)
>;
然后,我们可以将用户的数据输入到表中:
用户名密码
汤姆kelod1c377lke
John ba1T7vnz9AWgk
比尔paluvrwsrlz4u
这些加密的密码分别对应汤姆、约翰和比尔,我们将根据密码的前两个字母创建干扰字符串:
enteredpassword美元。
$盐= substr(enteredpassword美元,0, 2);
userpswd美元=隐窝(enteredpassword美元美元,盐);
/ / $ userpswd然后存储在MySQL用户名
密码响应验证系统在地穴()和Apache中的应用
< PHP
为主机=localhost; / /主机
用户名
密码=hello world美元; / /密码
$用户;
设置是否通过验证标记,默认值不是
$授权=0;
提示用户输入帐号和密码
如果(isset($ php_auth_user isset()$ php_auth_pw)){
mysql_pconnect(美元美元美元的主机,用户名,密码)或死亡(无法连接到MySQL服务器!;
mysql_select_db($ dB)或死亡(不选择数据库!);
加密
$盐= substr(php_auth_pw美元,0, 2);
encrypted_pswd美元=隐窝(php_auth_pw美元美元,盐);
查询语句
为查询= 选择用户名从成员用户名= php_auth_user美元密码= 为encrypted_pswd ;
查询
如果(mysql_numrows(mysql_query($查询))= = 1){
$授权=1;
}
}
如果(!$授权){
头( 'www-authenticate:基本境界=用户认证);
头( 'http / 1 401未经授权);
打印无法验证;
出口;
{ }人
打印已加密;
}
>
在缺省状态下,安全性不是最安全的,因此,如果我们需要高安全性能,我们需要其他更好的算法,如MD5(),它使用MD5散列算法。
如何用MD5加密
通过MD5函数加密的方法在PHP(MD5)中的作用是混合的。
混合功能的信息可以用一个固定长度的输出变换可变长度是混合之前,也被称为信息消化 PHP内置函数(MD5)混合,将可变长度的信息转换为128位(32个字符)摘要信息。一个有趣的特征是混合的:不能得到原代码通过对混合信息的分析,因为与原代码的结果混合是不依赖于内容。即使只改变一个字符在字符串中,也将使MD5的混合算法来计算两个不同的结果。让我们先看下表的内容和相应的结果:
MD5(混合)字符串的使用
< PHP
输入hello,PHP世界!;
输出= MD5(输入);
打印输出;
>
结果uff1a
输出:7996b5e0804042fd531907a4900f190e
注意,结果是长度为32个字符。让我们稍微更改输入值:
使用MD5()混合到一个稍微变化的字符串
< PHP
输入hello,PHP世界!;
输出= MD5(输入);
打印输出;
>
结果uff1a
hash2:f0456d48ed06a5c35b1e42561fa7a016
可以发现,虽然两个结果的长度是32个字符,但明文的微小变化会使结果发生很大的变化。我们可以利用这个特性来检查数据中的微小变化。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部