<1>由例子中可看到,使用PHP加密扩展库Mcrypt对数据加密和解密之前,首先创建了一个初始化向量,简称为iv。由 $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher,$modes),MCRYPT_RAND);可见创建初始化 向 量需要两个参数:size指定了iv的大小;source为iv的源,其中值MCRYPT_RAND为系统随机数。
<2>函数mcrypt_get_iv_size($cipher,$modes)返回初始化向量大小,参数cipher和mode分别指算法和加 密模式。
<3>加密函数$str_encrypt = mcrypt_encrypt($cipher,$key,$str,$modes,$iv); 该函数的5个参数分 别如下:cipher——加密算法、key——密钥、data(str)——需要加密的数据、mode——算法模式、 iv——初始化向量
<4>解密函数 mcrypt_decrypt($cipher,$key,$str_encrypt,$modes,$iv); 该函数和加密函数的参数几乎 一样,唯一不同的是data,也就是说data为需要解密的数据$str_encrypt,而不是原始数据$str。
注:加密和解密函数中的参数cipher、key和mode必须一一对应,否则数据不能被还原。
从文件中读取内部前30位,s=30,部分加密,密钥:6BB64B04849715D0AB2D57662AE1BC42
hash_hmac("sha256",substr($fileContent,0,s),"6BB64B04849715D0AB2D57662AE1BC42");
如:
http://php.net/manual/zh/function.crypt.php
http://dev.barad-dur.nl/sha256/index.php
http://gsp100.blogcn.com/articles/php-sha-256%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95%E5%AE%9E%E7%8E%B0.html
php des加密解密:
调用方法,包含上面的文件:
执行看是否得到了:
PHP之AES加密:
AES是RIJNDAEL的一个子集,固定为RIJNDAEL_128(加密算法)。
其中加密模式有很多种,CBC,CFB等。每种加密模式又有不同种的加密模块段。
aes-cfb在PHP和JAVA中默认是8bit的。
在flash和C++中256bit的。
在PHP中实现加密的为Mcrypt,默认为8bit的。
那么怎么样可以实现AES的256bit块的加密呢,新版的PHP5.3.3以及以上的openssl这个组件有这样的一个函数:openssl_encrypt()
base64加密:
结果:
http://blog.csdn.net/shushengsky/article/details/4961861
下载文件
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/4549/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2012-5-20 11:36
评论列表