当前位置: 首页 > 图文教程 > 网络编程 > PHP > 实例应用:使用PHP来进行加密与解密

PHP
Php部分常见问题总结
从零开始 教你如何搭建Discuz!4.1论坛(图)
php分页函数
php计数器的设计与实现
PHP初学者头疼问题总结
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
PHP截取中文字符串的问题
删除无限级目录与文件代码共享
生成静态页面的PHP类
转换中文为unicode 转换unicode到正常文本
玩转图像函数库—常见图形操作
Windows下PHP5和Apache的安装与配置
apache+mysql+php+ssl服务器之完全安装攻略
PHP.MVC的模板标签系统(一)
PHP.MVC的模板标签系统(二)
PHP.MVC的模板标签系统(三)
PHP.MVC的模板标签系统(四)
PHP.MVC的模板标签系统(五)
Windows下的PHP5.0安装配制详解
PHP中的串行化变量和序列化对象

实例应用:使用PHP来进行加密与解密


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 156 ::
收藏到网摘: n/a

<?php
$key = "This is supposed to be a secret key !!!";
function keyED($txt,$encrypt_key)
{
$encrypt_key = md5($encrypt_key);
$ctr=0;
$tmp = "";
for ($i=0;$i<strlen($txt);$i++)
{
  if ($ctr==strlen($encrypt_key)) $ctr=0;
  $tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);
  $ctr++;
}
return $tmp;
}
function encrypt($txt,$key)
{
srand((double)microtime()*1000000);
$encrypt_key = md5(rand(0,32000));
$ctr=0;
$tmp = "";
for ($i=0;$i<strlen($txt);$i++)
{
  if ($ctr==strlen($encrypt_key)) $ctr=0;
  $tmp.= substr($encrypt_key,$ctr,1) .
  (substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));
  $ctr++;
}
return keyED($tmp,$key);
}
function decrypt($txt,$key)
{
$txt = keyED($txt,$key);
$tmp = "";
for ($i=0;$i<strlen($txt);$i++)
{
  $md5 = substr($txt,$i,1);
  $i++;
  $tmp.= (substr($txt,$i,1) ^ $md5);
}
return $tmp;
}
$string = "Hello World !!!";
// encrypt $string, and store it in $enc_text
$enc_text = encrypt($string,$key);
// decrypt the encrypted text $enc_text, and store it in $dec_text
$dec_text = decrypt($enc_text,$key);
print "Original text : $string <Br>";
print "Encrypted text : $enc_text <Br>";
print "Decrypted text : $dec_text <Br>";
?>