PHP网页编程之PHP中的MD5加密
既然选择了PHP,就要坚持学下去!大家有没有问自己为什么会选择学习PHP呢?就我个人而言,完全是因为兴趣,因为我的专业和计算机完全无关,但是就是对编程很赶兴趣,尤其对网络编程、web开发特别赶兴趣。加密 综述:暗码学是研讨编制暗码(咱们简称为加密:encode)和破译暗码(咱们称之为解密:decode)的手艺迷信。研讨暗码变更的客不雅纪律,使用于编制暗码以守旧通讯奥密的,称为编码学;使用于破译暗码以获得通讯谍报的,称为破译学,总称暗码学。凡是情形下,人们将可懂的文本称为明文;将明文变换成的不成懂的文本称为密文。把明文变换成密文的进程叫加密;其逆进程,即把密文变换成明文的进程叫解密。PHP中供应了哪些数据加密功效?
PHP供应了crypt()函数完成加密功效:
string crypt (string input_string [, string salt])
这一函数完成被称作单向加密的功效,也就是说,它可以加密一些密码,但不克不及够将暗码转换为本来的密码。单向加密的口令一旦落入第三方人的手里,因为不克不及被复原为明文,因而也没有甚么大用途。在验证用户输出的口令时,用户的输出采取的也是单向算法,假如输出与存储的经加密后的口令相婚配,则输出的口令必定是准确的。
这个函数的input_string参数是需求加密的字符串,第二个参数salt是一个位字串,它可以影响加密的密码,进一步地扫除被称作估计算进击的能够性。缺省情形下,PHP利用一个2个字符的DES搅扰串,假如你的体系利用的是MD5 ,它会利用一个12个字符的搅扰串。咱们可以经由过程履行上面的号令发明体系将要利用的搅扰串的长度:
print "体系利用的搅扰串的长度是:". CRYPT_SALT_LENGTH;
crypt()撑持四种算法,上面是它撑持的算法和响应的salt参数的长度:
[注:以下用表格]
算法 Salt长度
CRYPT_STD_DES 2-character (默许)
CRYPT_EXT_DES 9-character
CRYPT_MD5 12-character beginning with $1$
CRYPT_BLOWFISH 16-character beginning with $2$
如何将PHP的数据加密功效使用于用户验证?
咱们用crypt()完成用户身份验证。好比咱们用一段PHP法式限制对一个目次的会见,只答应注册用户会见这一目次。咱们把材料存储MySQL数据库的一个表(这个数据表名为members)中:
mysql>CREATE TABLE members (
->username CHAR(14) NOT NULL,
->password CHAR(32) NOT NULL,
->PRIMARY KEY(username)
->);
然后,咱们可以输出用户的数据到该表中:
用户名 暗码
Tom keloD1C377lKE
John ba1T7vnz9AWgk
Bill paLUvRWsRLZ4U
这些加密的口令对应的密码分离是Tom、John和Bill。咱们将依据口令的前二个字母创立搅扰串:
$enteredPassword.
$salt = substr($enteredPassword, 0, 2);
$userPswd = crypt($enteredPassword, $salt);
// $userPswd然后就和用户名一同存储在MySQL 中
crypt()和Apache的口令-应对验证体系的使用
<?php
$host = "localhost"; //主机
$username = "Tom"; //用户名
$passwd = "Hello world"; //暗码
$db = "users"; //数据库名
// 设置是不是经由过程验证标记,默许为否
$authorization = 0;
// 提醒用户输出帐号和暗码
if (isset($PHP_AUTH_USER) && isset($PHP_AUTH_PW)){
mysql_pconnect($host, $username, $passwd) or die("不克不及毗连到MySQL办事器!");
mysql_select_db($db) or die("不克不及选择数据库!");
// 停止加密
$salt = substr($PHP_AUTH_PW, 0, 2);
$encrypted_pswd = crypt($PHP_AUTH_PW, $salt);
下一页
学习如何将PHP与HTML结合起来完成简单动态页面 因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax 学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql 首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。 我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。 多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。 首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。 做为1门年轻的语言,php一直很努力。 本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。 实践是检验自己会不会的真理。 其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。 使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。 在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。 写的比较杂,因为我也是个新手,不当至于大家多多指正。 写的比较杂,因为我也是个新手,不当至于大家多多指正。 没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。 多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。 做为1门年轻的语言,php一直很努力。 找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。 我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
页:
[1]