vCR.FieldByName['F_LxYdTel'].AsString=1D0B0909020B090A08251U2534353A3B3839
解决方案 »
- 诡异的输出问题
- 如何把一段html代码通过js赋值到文本域里?里面含好html标记好像不行
- fckeditor怎么调用
- sugarcrm处理相应的处理,最好是在哪里完成的
- iframe 怎么读取 上层的页面内容
- 如何取出HTML代码中的值?
- 这是我第一个php程序,请高手指点迷津!
- 哪位有识之士建一个群来讨论讨论 PHP 与 Smarty 吧。
- 在Red Hat Linux7.2/7.3中安装Apache/PHP/MySQL的问题?
- 救命,我快疯了的问题
- 关于简单的循环问题。。。
- phpinfo()显示Configuration File (php.ini)路径是/usr/local/php/lib,可这个路径下没有php.ini文件?
是不是说这个?
如何翻译这些?都翻成php的
midB、Asc、xor这些都该如何处理?
相应的ID是多少?
Asc ==> ord()
xor ==> ^
function EncryptStr($ID,$Str){
$TmpID=$ID;
$L=strlen($ID);
$TmpID= "";
$mStr = "";
for($ii=1;$ii<=$L;$ii++){
$a=substr($ID,$L-$ii,1);
$mStr=chr(ord($a)+$ii % 256);
$TmpID = $TmpID.$mStr;
}
$N=strlen($Str);
$mStr = "";
$mStr1= "";
for($ii=1;$ii<=$n;$ii++){
$mStr = chr(ord(substr($Str,$ii,1)) ^ ord(substr($TmpID,(($ii-1) % $L),1)));
$mStr1 = $mStr1.$mStr;
}
return $mStr1;
}//解密字符串 function Z36ToC($c){ //将两个36进制转成一个字符
$ic=(substr($c,0,1))*36;//0
$ics=substr($c,1,1);//B
if ($ics>'9'){
$ic=$ic+ord(substr($c,1,1))-ord('A')+10;
}else{
$ic=$ic+substr($c,1,1);
} $Result=chr($ic);
return $Result;
}
function UnEncryptDStr($ID,$Str){
//将STR从两位 0..9,A..Z 36串转单字节串。
$L=strlen($Str);
if (($L<32) or (($L % 2)<>0)) exit; //计密串错误
$L=$L/2;
$EnStr='';
for($i=1;$i<=$L;$i++){
$c=substr($Str,$i*2-2,2);
$ztoc=Z36ToC($c);
$EnStr=$EnStr.$ztoc;
} //加密ID不足10位,补到10位
$L=strlen($ID);
if( $L<10)
for($i=$L-1;$i<=10;$i++)
$ID=$ID+chr(ord('0')+$i-1); $EnStr=EncryptStr($ID,$EnStr); //将ID与STR做Xor解密
$StrLen=ord(substr($EnStr,0,1)); //实际明文的长度
return $Result;
}
$Str='1D0B0909020B090A08251U2534353A3B3839';
$ID='lin123';
echo UnEncryptDStr($ID,$Str);
?>
帮我看看,改造不成功,哭死?
两者之间字符串截取不同,php从0开始,pascal从1开始。是不是?我是按输出结果判断的。