gzh888666 发表于 2011-1-5 00:46:48

希望各位高手进来,将这个段代码转换成AU3,造福网通用户。(已解决)

本帖最后由 gzh888666 于 2011-1-10 12:00 编辑

好不容易才找到的
联通(原网通)宽带我世界ADSL账号加密算法c++
PHP代码

function CNCMAXEncode($input)
{
$DicStr = "9012345678abcdeABCDEFGHIJKLMNfghijklmnUVWXYZxyzuvwopqrstOPQRST";

$DicB = 0x11;
$DicB = 0x34;
$DicB = 0xC9;
$DicB = 0x23;
$DicB = 0x75;
$DicB = 0x18;
$DicB = 0xD7;
$DicB = 0xE2;
$DicB = 0x12;
$DicB = 0x35;
$DicB = 0x29;
$DicB = 0x2B;
$DicB = 0xEC;
$DicB = 0xB6;
$DicB = 0x23;
$DicB = 0x19;

$num4 = 0x25;
$di = $var2 = $index = $var3 = 0;
$outstr = "";

for($i=0; $i<strlen($input ); $i++)
{
for($j=0; $j<strlen($DicStr); $j++)
{
if($input[$i] == $DicStr[$j])
{
if($i>=0x10)
{
$di = $DicB[$i % 0x10];
}
else
{
$di = $DicB[$i ];
}
$var2 = $num4 * 3;
$index = ((($di ^ $var2) ^ $var3) + $j) % 0x3e;

$outstr[$i] = $DicStr[$index];
$var2 = $index;
$num4 = $num4 ^ ($var2 + 0x24d9);
}
}
if (empty($outstr[$i])) $outstr[$i ] = $input[$i];
$var3 = $var3 + 5;
}
$out = "";
for($j=0; $j<sizeof($outstr); $j++)
{
$out = $out.$outstr[$j];
}
return "1:".$out;

}

foboy 发表于 2011-1-5 02:59:10

这个是做啥用啊, 我是网通宽带, 不知道这玩意能有什么作用。

fhp2009 发表于 2011-1-5 08:45:30

该代码换成AU3貌似难度不大,不过不知道能干啥…

guland 发表于 2011-1-5 10:44:32

回复 3# fhp2009


    这东西转成AU3能干什么呢???....{:face (87):}

lin0308 发表于 2011-1-5 16:48:10

干什么用的?

gzh888666 发表于 2011-1-5 23:05:17

这个是网通的加密原理,破解出来以后就可以知道真正的用户名了!

gzh888666 发表于 2011-1-5 23:05:23

这个是网通的加密原理,破解出来以后就可以知道真正的用户名了!

gzh888666 发表于 2011-1-6 21:02:36

自己顶一下别沉了!

pusofalse 发表于 2011-1-6 21:17:53

^ 是位运算中的“相异”符号,对应AU3中的BitXOR函数。% 是取余符号,对应AU3的Mod函数。其余的都一样了,自己转换吧。

gzh888666 发表于 2011-1-6 22:16:14

本帖最后由 gzh888666 于 2011-1-6 22:28 编辑

回复 9# pusofalse

}
欢迎P版来!
}这个是干什么的?实在是没有一点C++的基础!自己转比较困难呀!

sxd 发表于 2011-1-7 10:50:40

你现在到底是要加密还是解密? 我想你要的应该是解密吧?

gzh888666 发表于 2011-1-7 19:50:50

是的!解密。网通的用户名都是加密了的!

sxd 发表于 2011-1-7 23:30:59

解密的话应该贴解密的函数 你贴的是加密的函数

sxd 发表于 2011-1-7 23:37:13

没测试 你自己测试下

Func CNCMAXEncode($input)
        $DicStr = "9012345678abcdeABCDEFGHIJKLMNfghijklmnUVWXYZxyzuvwopqrstOPQRST"
        Dim $DicB
        $DicB = 0x11
        $DicB = 0x34
        $DicB = 0xC9
        $DicB = 0x23
        $DicB = 0x75
        $DicB = 0x18
        $DicB = 0xD7
        $DicB = 0xE2
        $DicB = 0x12
        $DicB = 0x35
        $DicB = 0x29
        $DicB = 0x2B
        $DicB = 0xEC
        $DicB = 0xB6
        $DicB = 0x23
        $DicB = 0x19

        $num4 = 0x25
        $di = $var2 = $index = $var3 = 0
        Dim $outstr
        $outstr = ""

        For $i = 0 To StringLen($input) - 1
                For $j = 0 To StringLen($DicStr) - 1
                        If $input[$i] == StringMid($DicStr,$j+1,1) Then
                                If $i >= 0x10 Then
                                        $di = $DicB
                                Else
                                        $di = $DicB[$i]
                                EndIf
                                $var2 = $num4 * 3
                                $index = Mod((BitXOR(BitXOR($di, $var2), $var3) + $j), 0x3e)

                                $outstr[$i] = StringMid($DicStr,$index+1,1)
                                $var2 = $index
                                $num4 = BitXOR($num4, $var2 + 0x24d9)
                        EndIf
                Next

                If $i >= UBound($outstr) Then
                        ReDim $outstr[$i]
                        $outstr[$i] = $input[$i]
                EndIf

                $var3 = $var3 + 5
        Next

        $out = ""

        For $k = 0 To UBound($outstr) - 1
                $out = $out & $outstr[$k]
        Next

        Return "1:" & $out
EndFunc   ;==>CNCMAXEncode

Func CNCMAXDecode($string)
        $src_temp = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
        If StringMid($string, 1, 2) = "2:" Then $string = StringMid($string, 3)
        $TempString = $TempString1 = ""

        For $j = 0 To StringLen($string)
                For $i = 0 To 61
                        $TempString = $TempString1 & StringMid($src_temp, $i + 1, 1)
                        If CNCMAXEncode($TempString) = StringMid($string, 1, $j) Then
                                $TempString1 = $TempString
                                ExitLoop
                        EndIf
                Next
        Next
        Return $TempString1

lxz 发表于 2011-1-8 08:58:27

代码学习一下....
页: [1] 2
查看完整版本: 希望各位高手进来,将这个段代码转换成AU3,造福网通用户。(已解决)