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

来源:互联网 发布:百度端口天龙八部 编辑:程序博客网 时间:2024/04/30 02:42
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
.Vss942{display:none;}

在这个日渐虚拟的互联网世界中,您必须小心保护自已的数据。本文将介绍编码和加密一些重要信息(比如密码、信用卡号、甚至整个消息)的基础知识。并通过使用PHP的内置功能,了解加密和解密信息的意义,并且将了解一些涉及密码和其他数据的实际示例。站.长站

了解当今现实世界与20年前的现实世界的不同。在20世纪80年代,加密是一种特工人员的行为——是您在TomClancy的侦探小说中才可以读到的情节。如果某人想保持少量私有信息,那么他必须使用密码、密码短语或其他基本方法对数据进行加密。中.国

而现在,加密遍布各个领域。密码也被加密保存在数据库中。电脑空间中的加密的通道可能是通过SSL、SSH和其他技术加密的——更不必说拟虚专用网络。人们平常可以而且一定能够使用PrettyGoodPrivacy(PGP)来保护敏感的文件和电子邮件。站.长站

作为一名PHP开发人员,您应该知道,强有力的安全做法并不是只将安全保护用于独特的应用程序——还可以将其用于您当前从事的项目。用户要树立从一般加密方法(例如,在登录页上的密码字段中不显示明文)过渡到各种高级加密方法(如DES、MD5、SHA1和Blowfish)的意识。

因时间和篇幅所限,这里无法讨论加密的各个方面,但是您将从这里了解涵盖适用于您的多数情况的基本内容。我们通过使用PHP内置功能先了解加密和解密信息的意义,进而了解涉及密码和其他数据的一些实际示例。在本文中,加密是在更大的安全上下文中进行讨论的。最后,将介绍其他PHP扩展和插件。

加密技术的初级读本

作为希腊的词根资产,加密技术是一种“神秘编写”艺术。凯撒密码是最古老的一种密码,形式也最为简单。它采用明文消息,将字母移动n个位置,从而产生暗文。例如:

明文:VeniVidiVici
暗文:XgpkXkfkXkek
通过检查暗文并借助一些启发式的技巧,您可以知道,明文实际上是移动了两个字符。凯撒密码很容易破解。例如:检查上述信息,可知X重复了多次,且k也是如此。这就变成猜迷,确定多少个四字母的词有那样多的元音。知道了这些带元音的词后,您就知道了移动其余字的方法。它还可以帮助您判断明文是否为拉丁文,让您对其有大致的了解。

现代加密技术的功能非常强大,使用了超越统一移动字母和符号的算法。本文不打算详细介绍这些算法,仅介绍一些PHP安装,它包括您需要适度(或特别)保持数据安全的所有内容。

不存在100%不受攻击的绝对完整的加密方法。大概每隔一个月,一些黑客及其朋友就会集合1,000台计算机,在最初的几天里强力进行计算破坏,从而使最新的加密方法崩溃。不过,您可以密封您的系统和数据,不让黑客干扰和非法闯入。他们将在其他地方寻找可乘之机。

了解这些内容之后,让我们转而了解那些受简单登录形式保护的示例PHP应用程序。

没有安全保障或加密的PHP形式处理

假定您是一位新的Web应用程序开发人员,没有更多的机会使用安全功能。您创建了您的第一个应用程序,它可以在专用用户表中存储用户名和密码,但是,您没有对这些密码进行加密。这些密码以一眼就看明白的形式存在,任何人都可以使用它们访问数据库。您可以构建一个如下所示的登录页面。

清单1.简单的登录页面


<formaction="verify.PHP"method="post">
<p><labelfor='username'>Username</label>
<inputtype='text'name='username'id='username'/>
</p>
<p><labelfor='password'>Password</label>
<inputtype='text'name='password'id='password'/>
</p>
<p><inputtype="submit"name="submit"value="login"/>
</p>
</form>站.长站

此HTML标记存在什么问题?为密码字段选择的输入类型为text,这意味着用户键入该字段的任何内容都会以明文形式显示在屏幕上。^com

共5页:上一页1

<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击