delphi 转为 php 如果我懂delphi我就义务给你做.... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <?//要让字符转换成为没有办法直接看到规律的形式。//-加密==========//-原始字符串//-每个字符倍增加密,前空补0,形成4位的数字串,//-打乱排列//-加密的3位的数字串//打乱排列->字符->3位的数字串->//如何让相同的明文加密后成为不同的密文,而且可以回复出原来的明文。//就要制造出一对多的方案,最简单的就是扩大5倍,0到4都表示0,5到9都表示2。//倍增加密:j = i * t + radom(t)//倍减解密:i = j div t $timer = 7; $digi = 3; $comp_ch = '0'; $num0 = 48; $space = 32;//加密函数function Enc($str) { //:String; global $timer,$digi,$comp_ch,$num0,$space; $result = $str; $len = strlen($str); for($i=0;$i < $len;$i++) { $re .= complement(my_time(ord($str[$i]),$timer,$space),$digi,$comp_ch); } $result = disturb($re,true); return $result;}//解密函数function Dec($str) { //:String; global $timer,$digi,$comp_ch,$num0,$space; $str = disturb($str,false); for($i=0;$i<=floor(strlen($str) / $digi)-1;$i++) { $num = substr($str,$i*$digi,$digi); $result .= chr(my_div($num,$timer,$space)); } return $result;}//当字符不够digi位的时候,用ch在前面补充。function complement($str,$digi,$ch) {//:String; $result = $str; for( $i=1;$i<=$digi-strlen($str);$i++) $result=""+$ch+$result; return $result;}//可逆转的字符转换函数function transform($ch,$dir) { //:char; global $num0; $intchr = ord($ch); if($dir) { $intch = my_time($intchr,5,$num0) + 30; } else { $intch = my_div($intchr - 30,5,$num0); } $result = chr($intch); return $result;}//可逆转的扰排函数function disturb($str,$dir){ // :String; $result = $str; $len = strlen($str); $addi = $len % 2; //进行反转的时候如果奇数和偶数的处理不一样 $i=1; while ( $i <= $len ) { if ( $i <= $len ) { $result[$len-$i+$addi-1] = transform($str[$i-1],$dir); } $i++; if ( $i <= $len ) { $result[$i-1] = transform($str[$i-1],$dir); } $i++; } return $result;}function my_time($i,$t,$base) { //: integer; $result = ($i-$base) * $t + rand(1,$t-1); return $result;}function my_div($i,$t,$base) { //: integer; $result = floor($i / $t) + $base; return $result;}$str_1="abcedfghjklx";echo " s t r_1=".$str_1."<br />";$str_2=Enc($str_1);echo " s t r_2=".$str_2."<br />";$str_3=Dec($str_2);echo " s t r_3=".$str_3."<br />";?> 有关于PDO PHP怎样切?来看看哦! 学php的进来看看!~ 求教 推荐一篇最好PHP的安装配置教程 如何提高修改图片尺寸的效率 利用404 伪静态??? 这样的html是如何动态生成的? mysql_connect问题。 文件上传出现的怪问题??在线等(100分。) windows欢迎屏幕不见了 巨菜问题strip_tags()过滤html???
//-原始字符串
//-每个字符倍增加密,前空补0,形成4位的数字串,
//-打乱排列
//-加密的3位的数字串
//打乱排列->字符->3位的数字串->
//如何让相同的明文加密后成为不同的密文,而且可以回复出原来的明文。
//就要制造出一对多的方案,最简单的就是扩大5倍,0到4都表示0,5到9都表示2。
//倍增加密:j = i * t + radom(t)
//倍减解密:i = j div t $timer = 7;
$digi = 3;
$comp_ch = '0';
$num0 = 48;
$space = 32;//加密函数
function Enc($str) { //:String;
global $timer,$digi,$comp_ch,$num0,$space;
$result = $str;
$len = strlen($str);
for($i=0;$i < $len;$i++) {
$re .= complement(my_time(ord($str[$i]),$timer,$space),$digi,$comp_ch);
}
$result = disturb($re,true);
return $result;}//解密函数
function Dec($str) { //:String;
global $timer,$digi,$comp_ch,$num0,$space;
$str = disturb($str,false);
for($i=0;$i<=floor(strlen($str) / $digi)-1;$i++)
{
$num = substr($str,$i*$digi,$digi);
$result .= chr(my_div($num,$timer,$space));
}
return $result;
}//当字符不够digi位的时候,用ch在前面补充。
function complement($str,$digi,$ch) {//:String;
$result = $str;
for( $i=1;$i<=$digi-strlen($str);$i++) $result=""+$ch+$result;
return $result;
}//可逆转的字符转换函数
function transform($ch,$dir) { //:char;
global $num0;
$intchr = ord($ch);
if($dir) {
$intch = my_time($intchr,5,$num0) + 30;
} else {
$intch = my_div($intchr - 30,5,$num0);
}
$result = chr($intch);
return $result;
}//可逆转的扰排函数
function disturb($str,$dir){ // :String;
$result = $str;
$len = strlen($str);
$addi = $len % 2; //进行反转的时候如果奇数和偶数的处理不一样
$i=1;
while ( $i <= $len )
{
if ( $i <= $len ) { $result[$len-$i+$addi-1] = transform($str[$i-1],$dir); }
$i++;
if ( $i <= $len ) { $result[$i-1] = transform($str[$i-1],$dir); }
$i++;
}
return $result;
}function my_time($i,$t,$base) { //: integer;
$result = ($i-$base) * $t + rand(1,$t-1);
return $result;
}function my_div($i,$t,$base) { //: integer;
$result = floor($i / $t) + $base;
return $result;
}$str_1="abcedfghjklx";
echo " s t r_1=".$str_1."<br />";
$str_2=Enc($str_1);
echo " s t r_2=".$str_2."<br />";
$str_3=Dec($str_2);
echo " s t r_3=".$str_3."<br />";?>