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语言,被广泛地运用。