aardio 官方社区

用户名  找回密码
 注册会员

QQ登录

只需一步,快速开始

帖子
查看: 8474|回复: 6

求把这段代码 转为 aardio代码(字符串加密用)

[复制链接]

52

主题

217

回帖

1708

积分

四级会员

积分
1708
发表于 2012-7-15 17:28:21 | 显示全部楼层 |阅读模式
本帖最后由 qqmmcc 于 2012-7-31 22:19 编辑

不会DELPHI,不知道有木有高手可以帮忙转一下aardio代码...
谢了..


下面是Delphi解密代码
XorKey:array[0..7] of Byte = ($A6,$B7,$23,$E7,$1C,$A3,$3C,$D1); //字符串加密用
function Dec2(Str:String):String;
var
  i, j:Integer;
begin
  Result :=
'';
  j := 0;
  
for i := 1 to Length(Str) div 2 do
  
begin
    Result := Result + Char(StrToInt(
'$'+Copy(Str,i*2-1,2)) xor XorKey[j]);
    j := (j + 1) mod 8;
  
end;
end;

52

主题

217

回帖

1708

积分

四级会员

积分
1708
 楼主| 发表于 2012-7-15 20:55:01 | 显示全部楼层
本帖最后由 winner 于 2012-7-15 20:58 编辑

自己搞定了...

Dec2 = function(code){
    xorkey = {0xa6;0xb7;0x23;0xe7;0x1c;0xa3;0x3c;0xd1};
//16进制解密Key数组
    str = ""
    j = 0;
   
for(i=1;#code/2;1){
        code_16 = string.slice(code,i*2-1,i*2)            
//获取16进制数据
        code_10 = tonumber('0x'++code_16);              //转为10进制
        key = xorkey[j+1]                               //加密key
        str_code = code_10^key                          //进行异或运算
        str += string.pack(str_code)
        j = (j+1) % 8
        
//j = j+1   //aardio数组从下标1开始
        //console.log(i,j,j+1,code_16,code_10,xorkey[j+1],str_code)
    }
   
return str;
}

4

主题

852

回帖

4689

积分

荣誉会员

积分
4689
发表于 2012-7-15 21:41:13 | 显示全部楼层
xorkey = {0xa6;0xb7;0x23;0xe7;0x1c;0xa3;0x3c;0xd1};
dec2 = function(code){
   
var result,j = {},0;
   
for(i=1;#code/2;1){
        table.push( result,
tonumber(string.slice(code,i*2-1,i*2),16) ^ xorkey[j+1]  )
        j = (j+1) % 8
    }
   
return string.pack(result) ;
}
  

4

主题

852

回帖

4689

积分

荣誉会员

积分
4689
发表于 2012-7-15 21:45:28 | 显示全部楼层

xorkey = { [0] = 0xa6;0xb7;0x23;0xe7;0x1c;0xa3;0x3c;0xd1 };
dec2 = function(code){
   
var result,j = {},0;
   
for hex in string.gmatch( code,"(\x\x)") {
        table.push( result,
tonumber(hex,16) ^ xorkey[ j % 8 ]  )
        j++;
    }
   
return string.pack(result) ;
}
  

52

主题

217

回帖

1708

积分

四级会员

积分
1708
 楼主| 发表于 2012-7-15 22:28:49 | 显示全部楼层
看到3楼的答案...虎躯一震啊

52

主题

217

回帖

1708

积分

四级会员

积分
1708
 楼主| 发表于 2012-7-15 22:29:19 | 显示全部楼层
原来可以定义下标从0开始的呀....

15

主题

112

回帖

922

积分

三级会员

积分
922
发表于 2012-7-15 22:42:14 | 显示全部楼层
//字符串加密用
import string
XorKey={0XA6;0XB7;0X23;0XE7;0XFC;0XA3;0X3C;0XD1};
function dec2(dostr)
{
   
var j;
    result=
"0x"
   
for (i=1;#dostr/2;1)
      {
        j=i % 8
        
if (j=0) j=8;
        getnum=
tonumber(string.slice(dostr,i,i+1),16)^XorKey[j]         
        getstr=
tostring(getnum,16)
        
if string.len(getstr)=3 getstr=string.left(getstr,2)+"0"+string.right(getstr,1)
        result=result+ getstr      
       }
    result=string.replace(result,
"0x","")   
   
return result
}
import console
dat=
"A48B90D4E58748B90D4E58A7"
console.log(dat)
console.log(dec2(dat))
execute("pause")
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2025-6-12 07:58 , Processed in 0.058400 second(s), 23 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表