php5.x扩展:xxtea可逆加密

On 08/05/2010, in c, php, by kilobug

最近在学习开发php5.x扩展,就拿xxtea加密算法来练手;

此扩展采用国外的xxtea加密算法,配合md5、base64,实现php下可逆加密功能;

扩展函数:
xxtea加密函数

function xxtea_encode(string $str, string $key[, bool $is_base64])

parameter:
$str: 需加密的内容,可以是二进制内容
$key: 密钥
$is_base64[可选]: 结果是否进行base64编码,默认为true
return: [二进制|字符串]

xxtea解密函数

function xxtea_decode($str, $key[, $is_base64])

parameter:
$str: 需解密的内容,可以是二进制内容
$key: 密钥
$is_base64[可选]: 密文是否base64编码过,默认为true
return: [二进制|字符串]

扩展源码下载:php_xxtea.zip

BUG: 当加密的字符长度小于2,无法加密,返回原值

有关tea算法资料:http://en.wikipedia.org/wiki/XXTEA

算法描述:

“微型加密算法(TEA)及其相关变种(XTEA,Block TEA,XXTEA) 都是分组加密算法,它们很容易被描述,实现也很简单(典型的几行代码)。

TEA 算法最初是由剑桥计算机实验室的 David Wheeler 和 Roger Needham 在 1994 年设计的。该算法使用 128 位的密钥为 64 位的信息块进行加密,它需要进行 64 轮迭代。该算法使用了一个神秘常数δ作为倍数,它来源于黄金比率,以保证每一轮加密都不相同。但δ的精确值似乎并不重要,这里 TEA 把它定义为 δ=「(√5 – 1)231」(也就是程序中的 0×9E3779B9 )。”

其实,TEA跟我们的关系非常密切,因为QQ就是使用16轮迭代的TEA算法。

XXTEA是其最新的变种,于1998年提出。目前还没有人找到对其进行攻击的方法,是对前面一些变种的改进。XXTEA 算法很安全,而且非常快速,非常适合应用于 Web 开发中。

Tagged with:  

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

无觅相关文章插件,快速提升流量