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

时间:2010-01-16 10:38:05   来源:第二电脑网  作者:第二电脑网

  第二电脑网导读: />  了解当今现实世界与 20 年前的现实世界的不同。在 20 世纪 80 年代,加密是一种特工人员的行为 —— 是您在 Tom Clancy 的侦探小说中才可以读到的情节。如果某人想保持少量私有信息,那么他必须使用密码、密码短语或其他基础方法对数据进行加密。      而现在,加密遍布各个领域。密码也被加密保存在数据库中。计算机空间中的加密的通道可...
  正文:

在这个日渐虚拟的互联网世界中,您必须小心保护自已的数据。本文将介绍编码和加密一些重要信息(比如密码、信用卡号、甚至整个消息)的基础知识。并通过使用 PHP 的内置功能,了解加密和解密信息的意义,并且将了解一些涉及密码和其他数据的实际示例。
  了解当今现实世界与 20 年前的现实世界的不同。在 20 世纪 80 年代,加密是一种特工人员的行为 —— 是您在 Tom Clancy 的侦探小说中才可以读到的情节。如果某人想保持少量私有信息,那么他必须使用密码、密码短语或其他基础方法对数据进行加密。
  
  而现在,加密遍布各个领域。密码也被加密保存在数据库中。计算机空间中的加密的通道可能是通过 SSL、SSH 和其他技术加密的 —— 更不必说拟虚专用网络。人们平常可以而且一定能够使用 Pretty Good Privacy (PGP) 来保护敏感的文件和电子邮件。
  
  作为一名 PHP 开发人员,您应该知道,强有力的安全做法并不是只将安全保护用于独特的应用程序 —— 还可以将其用于您当前从事的项目。用户要树立从一般加密方法(例如,在登录页上的密码字段中不显示明文)过渡到各种高级加密方法(如 DES、MD5、SHA1 和 Blowfish)的意识。
  
  因时间和篇幅所限,这里无法讨论加密的各个方面,但是您将从这里了解涵盖适用于您的多数情况的基础内容。我们通过使用 PHP 内置功能先了解加密和解密信息的意义,进而了解涉及密码和其他数据的一些实际示例。在本文中,加密是在更大的安全上下文中进行讨论的。最后,将介绍其他 PHP 扩展和插件。
  
  加密技术的初级读本
  
  作为希腊的词根资产,加密技术是一种 “神秘编写” 艺术。凯撒密码 是最古老的一种密码,形式也最为简单。它采用明文消息,将字母移动 n 个位置,从而产生暗文。例如:
  
  明文:Veni Vidi Vici
  暗文:Xgpk Xkfk Xkek
  通过检查暗文并借助一些启发式的技巧,您可以知道,明文实际上是移动了两个字符。凯撒密码很容易破解。例如:检查上述信息,可知 X 重复了多次,且 k 也是如此。这就变成猜迷,确定多少个四字母的词有那样多的元音。知道了这些带元音的词后,您就知道了移动其余字的方法。它还可以帮助您判断明文是否为拉丁文,让您对其有大致的了解。
  
  现代加密技术的功能非常强大,使用了超越统一移动字母和符号的算法。本文不打算详细介绍这些算法,仅介绍一些 PHP 安装,它包括您需要适度(或特别)保持数据安全的所有内容。
  
  不存在 100% 不受攻击的绝对完整的加密方法。大概每隔一个月,一些黑客及其朋友就会集合 1,000 台计算机,在最初的几天里强力进行计算破坏,从而使最新的加密方法崩溃。不过,您可以密封您的系统和数据,不让黑客干扰和非法闯入。他们将在其他地方寻找可乘之机。
  
  了解这些内容之后,让我们转而了解那些受简单登录形式保护的示例 PHP 应用程序。
  
  没有安全保障或加密的 PHP 形式处理
  
  假定您是一位新的 Web 应用程序开发人员,没有更多的机会使用安全功能。您创建了您的第一个应用程序,它可以在专用用户表中存储用户名和密码,但是,您没有对这些密码进行加密。这些密码以一眼就看明白的形式存在,任何人都可以使用它们访问数据库。您可以构建一个如下所示的登录页面。
  
  清单 1. 简单的登录页面
  
  <form action="verify.php" method="post">
  <p><label for='username'>Username</label>
  <input type='text' name='username' id='username'/>
  </p>
  <p><label for='password'>Password</label>
  <input type='text' name='password' id='password'/>
  </p>
  <p><input type="submit" name="submit" value="log in"/>
  </p>
  </form>
  
  此 HTML 标记存在什么问题?为密码字段选择的输入类型为 text,这意味着用户键入该字段的任何内容都会以明文形式显示在屏幕上。
  
  您可以方便地将该类型更改为 password,并将该字段中的用户输入替换为一串星号。可靠吗?绝对可靠。不过,这一步骤在很多应用程序中会被忽略。事情虽小,但在安全方面会使人们感到不安。您愿意将钱存入休息大厅的窗口被严重毁坏的银行吗?也许您会。但是您可能更期望银行是完好无损的。对于应用程序来说,道理相同。
来源:http://www.002pc.com/master/College/Programming/PHP/11956.html

 1/5    1 2 3 4 5 下一页 尾页
收藏到:

关于《向普通人加密 用PHP程序保护数据》文章的评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

随机文章

    SQL Error: select * from ***_ecms_article where classid='86' and checked=1 order by rand() limit 10

顶出来的热门

    SQL Error: select * from ***_ecms_article where classid='86' and checked=1 order by diggtop desc,id desc limit 10
站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td