php是现在比较流行的服务器端软件,通过php编制的动态网页应用的十分广泛,那么我今天就带大家来了解一下php加密技术。

一、PHP加密技术的基本原理

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

二、PHP中对数据进行加密的函数

PHP中对数据进行加密的函数有:crypt(),md5()和shal(),还有加密扩展库Mcrypt和Mhash。

1、crypt():

可以完成单向加密功能,(无法解密)。

格式:string crypt(string str[,string salt]);

str参数是需要加密的字符串,salt参数为加密时使用的干扰串。如省略掉第二个参数,则会随机生成一个干扰串。

说明:缺省情况下,PHP使用一个2个字符的DES干扰串,如果系统使用的是MD5,则会使用一个12个字符。可以通过CRYPT_SALT_LENCTH变量来查看当前所使用的干扰串的长度,该函数支持4种算加密法和长度。

2、MD5():

格式:string md5(string str[,bool raw_output]);

其中str为要加密的明文,raw_output参数如果为真,则函数返回一个二进制形式的密文。默认为false。

3、sha1():

格式:string sha1(string str [,bool raw_output])

说明:函数返回一个40位的16进制数,如果参数raw_output为真,则返回一个20位的二进制数。默认为false。

区别:相同字符串多次刷新,crypt()加密会出现多个不同效果;MD5()和sha1()效果不会改变。

4、PHP加密扩展库:

Mcrypt()扩展库:既能加密又能解密。

安装Mcrypt()扩展库:首先把PHP目录下的libmcrypt.dll文件copy到系统目录下,然后在php.ini文件中找到";extension=php_mcrypt.dll"将前面的分号去掉,最后重启服务器。

Mcrypt()扩展库常量:支持20多种加密算法和8种加密模式,可以通过函数mcrypt_list_algorithms()和mcrypt_list_modes()来查看。

Mcrypt应用:初始化向量:mcrypt_create_iv(该向量的大小,向量的源(MCRYPT_RAND:取系统的随机数))

获取到初始化向量的大小:mcrypt_create_iv_size(加密算法;加密模式);

加密:mcrypt_encrypt(加密算法,密钥,需要加密的数据,算法模式,向量);

解密:mcrypt_decrypt(加密算法,密钥,需要解密的数据,算法模式,向量);

5、Mhash扩展库:

安装Mhash扩展库:首先把PHP目录下的libmhash.dll文件copy到系统目录下,然后在php.ini文件中找到";extension=php_mhash.dll"将前面的分号去掉,最后重启服务器。

Mhash扩展库常量:Mhash扩展库支持MD5,SHA1,CRC32等多种散列算法,可以使用mhash_count()和mhash_get_hash_name()函数输出支持的算法名称。

Mhash扩展库应用:获取文件的全部内容:file_get_contents(文件名)。

小知识之php:

PHP,是英文超文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。