www.baike369.com
百科369 > PHP教程 > PHP加密技术

PHP加密技术



PHP加密技术

在20世纪80年代,加密是一种特工人员的行为,是只有在Tom Clancy的侦探小说中才可能读到的情节,如果某人想获取一些加密信息,那么他必须使用密码、密码短语或其它方法对数据进行加密。
    随着网络的普及,网上购物已经成了时尚男女的主要消费方式之一,因此对于个人隐私、账号密码等敏感数据的保护也越来越重要。原来只有在侦探小说中才听说过的加密、解密也出现在现实生活中。其实加密技术本没有那么神秘,它就是一种相对比较复杂的算法。
    现在,加密与解密技术已经遍布软件应用的各个领域,密码也被加密保存在数据库中。作为一名PHP开发人员应该知道,强有力的安全做法并不只是将安全保护用于独特的应用程序,还应该将其用于当前从事的项目。
    因此,我们要从一般的加密方法(例如,在登录页上的密码字段中不显示明文)过渡到各种高级加密方法,如DES、MD5、SHA1和Blowfish等。

PHP MD5算法

MD5的全称是Message-Digest algorithm 5(信息-摘要算法)。

PHP SHA1算法

SHA(Secure Hash Algorithm。


PHP加密函数

数据加密的基本原理就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,通过这样的途径来达到保护数据不被非法窃取和阅读的目的。

PHP使用crypt()函数进行加密

crypt()函数可以完成单向加密功能。

PHP使用md5()函数进行加密

md5()函数使用MD5算法。

PHP使用sha1()函数进行加密

和MD5类似的还有SHA算法。


PHP加密扩展库

PHP除了自带的几种加密函数外,还有功能更全面的加密扩展库Mcrypt和Mhash。其中,Mcrypt扩展库可以实现加密解密功能,既能将明文加密,也可以将密文还原。Mhash扩展库则包含了MD5在内的多种hash算法实现的混编函数。
    虽然MD5等单向算法不失为一个方便好用的简易加密方案,但是除了这些单向的加密算法外,当要求加密程度较高时,PHP还为我们提供了mcrypt扩展库,它提供了著名的DES以及其它十几种的双向加密算法,由于双向加密约定了共同的Key,几乎没有任何解密的可能。
    在PHP 5.4.5中,不需要安装Mcrypt库。

PHP mcrypt扩展库与DES算法

DES加密算法是美国国家标准局1973年开始研究的除国防部外其它部门计算机系统的数据加密标准。

PHP使用mcrypt_list_algorithms()函数列出mcrypt扩展库所支持的加密算法

mcrypt支持将近20个样式的双向加密算法。

PHP使用mcrypt_list_modes()函数列出mcrypt扩展库所提供的加密模式

除了指定加密算法,mcrypt在加密时还需要指定加密模式,在PHP5中一共有8种加密模式。

PHP通过mcrypt_list_algorithms()和mcrypt_list_modes()函数查看Mcrypt库常量

Mcrypt库支持20多种加密算法和8种加密模式。

PHP使用mcrypt_encrypt()和mcrypt_decrypt()函数进行加密和解密

使用Mcrypt进行加密和解密不像使用md5()、sha1()等函数,直接调用即可。

PHP使用mcrypt_encrypt()和mcrypt_decrypt()函数进行加密与解密的方法

我们可以使用mcrypt_encrypt()函数进行加密操作,使用mcrypt_decrypt()函数进行解密操作。

PHP通过mhash_count()和mhash_get_hash_name()函数查看Mhash库常量

Mhash库支持MD5、SHA、CRC32等多种散列算法。

PHP使用mhash()和mhash_keygen_s2k()函数生成校验码

使用mhash()函数和mhash_keygen_s2k()函数可以生成一个校验码,使用bin2hex()函数可以将二进制结果转换为十六进制。

Copyright© 2011-2016 www.baike369.com All Rights Reserved