快速业务通道

向普通人加密 用PHP程序保护数据

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-25
法 Salt
CRYPT_STD_DES 2 个字符(默认)
CRYPT_EXT_DES 9 个字符
CRYPT_MD5 12 个字符,以 $1$开头
CRYPT_BLOWFISH 16 个字符,以 $2$开头


许多现代 PHP 安装使用 MD5 或更高的 salt,它们使用强大的 12 个字符的 salt,但是,不要对任何事情想当然。您最好知道系统正在使用哪一个值。您可以使用以下 PHP 代码片段检查服务器的设置:

<?php echo "System salt size: ". CRYPT_SALT_LENGTH; ?>

返回的答案将是 2、9、12 或 16,它告诉您系统正在使用的值。要使用 MD5 或更高版本的 salt,您可以显式调用明文和 salt 参数中的 crypt() 函数以及 md5() 函数,以获取随机暗文(参见清单 5)。md5() 函数可以散列反馈的任何字符串,并将其转变为固定长度为 32 个字符的字符串。您可能更喜欢其他方法,具体的使用取决于安全需求和个人爱好。

清单 5. 使用 crypt() 和 md5() 加密密码

<?php
$user = strip_tags(substr( 向普通人加密 用PHP程序保护数据 - 凌众科技

快速业务通道

向普通人加密 用PHP程序保护数据

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-25
content

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

POST[''user''],0,32));
$pw = strip_tags(substr( 向普通人加密 用PHP程序保护数据 - 凌众科技
快速业务通道

向普通人加密 用PHP程序保护数据

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-25
content

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

POST[''password''],0,32));

$cleanpw = crypt(md5($pw),md5($user));

$sql = "insert into users (username,password)
values(''".mysql_real_escape_string($user)."'',
''".mysql_real_escape_string($cleanpw)."'')";
//.....etc....
?>

现在数据库中已经拥有一个已加密的密码,但是没有对其进行解密的方法。如何使之有用?一个比较容易的方法是:对用户提供的任何传入密码都使用相同的加密方法,并将结果与您存储的密码比较。

清单 6. 重访 verify.php

<?php
$user = strip_tags(substr( 向普通人加密 用PHP程序保护数据 - 凌众科技

快速业务通道

向普通人加密 用PHP程序保护数据

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-25
content

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

POST[''user''],0,32));
$pw = strip_tags(substr( 向普通人加密 用PHP程序保护数据 - 凌众科技
快速业务通道

向普通人加密 用PHP程序保护数据

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-25
content

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

POST[''password''],0,32));
$cleanpw = crypt(md5($pw),md5($user));

$sql = "select user,password from users
where user=''". mysql_real_escape_string($user)."''
and password=''". mysql_real_escape_string($cleanpw)."''
limit 1'';
$result = mysql_query($sql);

if (mysql_num_rows($result)){
//we have a match!
}else{
//no match
}
?>
例如,如果存储的加密密码是 i83Uw28jKzBrZF,则加密存储传入的密码,并将它与存储的密码进行比较。攻击者破坏加密的惟一方法是将一个非常长的字符串列表与您的加密密码进行比较,每次比较一个,直到找到匹配项。这也称为字典攻击,因此您的密码最好不应该是密码 或 Star Trek 字符名,甚至您的呢称。因为在加密 Fido 后,它会变成一堆乱语,但这并不表明它对于此种攻击是安全的。确保您的密码具有某一长度(八个或更多字符),并包含大写字母、数字和特定的字符,如 ! 和 $,这样猜测您的数据会更加困难。在短语中,f1D0! 是一个较好的密码,它胜于 GandalftheGray 之类的长密码,由于后者使用小写字母,并且是 “Lord of the Rings” 的字符名称。

使用 crypt() 的一种不太好的方法

还有使用 crypt() 的另一种方法,这种方法不太好:将明文的前 n 个字符用作 salt。

清单 7. 将明文字符用于 salt

<?php
$user = strip_tags(substr( 向普通人加密 用PHP程序保护数据 - 凌众科技

快速业务通道

向普通人加密 用PHP程序保护数据

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-25
content

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

POST[''user''],0,32));
$pw = strip_tags(substr( 向普通人加密 用PHP程序保护数据 - 凌众科技
快速业务通道

向普通人加密 用PHP程序保护数据

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-25
content

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

POST[''password''],0,32));
$cleanpw =crypt($pw, substr($user,0,2));

$sql = "select user,password from users
where user=''". mysql_real_escape_string($user)."''
and password=''". mysql_real_escape_string($cleanpw)."''
limit 1'';
$result = mysql_query($sql);

if (mysql_num_rows($result)){
//we have a match!
}else{
//no match
}
?>

如果您的用户名是 tmyer,则 salt 预置为 tm,它会使某人很容易推断 salt 的内容。这不是一个好方法。

使用 PHP 进行加密和解密

本文的大部分篇幅讨论了使用 crypt() 的单向加密。但是,如果

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号