求助,一个PHP函数转换成delphi函数。
时间:2011-09-30
来源:互联网
function encode($input)
{
$FlashFXP_Key = "yA36zA48dEhfrvghGRg57h5UlDv3";
if($input=="") return "";
$key = rand(1,255);
//$key = 15; //调试用的
echo "动态Key".$key."<br>"; //随机255的数
if($key >0x0F){ //10进制的15
$result = strtoupper(dechex($key)); //10进制转换成16进制并大写
}else{
$result = "0".strtoupper(dechex($key)); //不足15 10进制的15是字母F补0就是0F了并大写
}
$magic_number = $key;
echo "magic_number".$magic_number."<br>"; //返回值貌似和上面的随机Key一样没变化……
$result = strval($result); //将16进制的数字转换成字符串类型
echo "result".$result."<br>";
for($i=0;$i<strlen($input);$i++){
echo ord($input[$i])+$magic_number."循环次数".$i."<br>";
if(ord($input[$i])+$magic_number>0xFF) //判断明文相应字符的10进制数加随机key是否大于255 (16进制就是0XFF)
$magic_number = (ord($input[$i])+$magic_number - 0xFF)^(ord($FlashFXP_Key[$i%28])); //大于255就减去255 然后在和密匙的相应位置的数值xor计算
else
$magic_number = (ord($input[$i])+$magic_number)^(ord($FlashFXP_Key[$i%28])); //不大于255直接xor 密匙相应位置的数值
if($magic_number>0x0F) //10进制的15
$result .= dechex($magic_number); //直接16进制
else
$result = $result."0".dechex($magic_number); //16进制后 补0 (并加上面的Key的16进制)
}
$result = strtoupper($result); //全部转换大写字母
return $result;
}
这是一个PHP的函数源码,我想转换成 delphi的,但PHP的16进制和10进制转换和delphi 的不同,还有异或运算我也不熟悉,写出来的代码得不到想要的结果,请懂PHP的朋友帮忙转换一下,转成delphi的,多谢了
{
$FlashFXP_Key = "yA36zA48dEhfrvghGRg57h5UlDv3";
if($input=="") return "";
$key = rand(1,255);
//$key = 15; //调试用的
echo "动态Key".$key."<br>"; //随机255的数
if($key >0x0F){ //10进制的15
$result = strtoupper(dechex($key)); //10进制转换成16进制并大写
}else{
$result = "0".strtoupper(dechex($key)); //不足15 10进制的15是字母F补0就是0F了并大写
}
$magic_number = $key;
echo "magic_number".$magic_number."<br>"; //返回值貌似和上面的随机Key一样没变化……
$result = strval($result); //将16进制的数字转换成字符串类型
echo "result".$result."<br>";
for($i=0;$i<strlen($input);$i++){
echo ord($input[$i])+$magic_number."循环次数".$i."<br>";
if(ord($input[$i])+$magic_number>0xFF) //判断明文相应字符的10进制数加随机key是否大于255 (16进制就是0XFF)
$magic_number = (ord($input[$i])+$magic_number - 0xFF)^(ord($FlashFXP_Key[$i%28])); //大于255就减去255 然后在和密匙的相应位置的数值xor计算
else
$magic_number = (ord($input[$i])+$magic_number)^(ord($FlashFXP_Key[$i%28])); //不大于255直接xor 密匙相应位置的数值
if($magic_number>0x0F) //10进制的15
$result .= dechex($magic_number); //直接16进制
else
$result = $result."0".dechex($magic_number); //16进制后 补0 (并加上面的Key的16进制)
}
$result = strtoupper($result); //全部转换大写字母
return $result;
}
这是一个PHP的函数源码,我想转换成 delphi的,但PHP的16进制和10进制转换和delphi 的不同,还有异或运算我也不熟悉,写出来的代码得不到想要的结果,请懂PHP的朋友帮忙转换一下,转成delphi的,多谢了
作者: ymenking 发布时间: 2011-09-30
Encode是自定义函数,加密功能
作者: jingtuzhong 发布时间: 2011-10-01
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28