找回密码
 加入
搜索
查看: 9471|回复: 26

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

 火.. [复制链接]
发表于 2011-1-5 00:46:48 | 显示全部楼层 |阅读模式
本帖最后由 gzh888666 于 2011-1-10 12:00 编辑

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

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

$DicB[0] = 0x11;
$DicB[1] = 0x34;
$DicB[2] = 0xC9;
$DicB[3] = 0x23;
$DicB[4] = 0x75;
$DicB[5] = 0x18;
$DicB[6] = 0xD7;
$DicB[7] = 0xE2;
$DicB[8] = 0x12;
$DicB[9] = 0x35;
$DicB[10] = 0x29;
$DicB[11] = 0x2B;
$DicB[12] = 0xEC;
$DicB[13] = 0xB6;
$DicB[14] = 0x23;
$DicB[15] = 0x19;

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

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;

}
发表于 2011-1-5 02:59:10 | 显示全部楼层
这个是做啥用啊, 我是网通宽带, 不知道这玩意能有什么作用。
发表于 2011-1-5 08:45:30 | 显示全部楼层
该代码换成AU3貌似难度不大,不过不知道能干啥…
发表于 2011-1-5 10:44:32 | 显示全部楼层
回复 3# fhp2009


    这东西转成AU3能干什么呢???....
发表于 2011-1-5 16:48:10 | 显示全部楼层
干什么用的?
 楼主| 发表于 2011-1-5 23:05:17 | 显示全部楼层
这个是网通的加密原理,破解出来以后就可以知道真正的用户名了!
 楼主| 发表于 2011-1-5 23:05:23 | 显示全部楼层
这个是网通的加密原理,破解出来以后就可以知道真正的用户名了!
 楼主| 发表于 2011-1-6 21:02:36 | 显示全部楼层
自己顶一下别沉了!
发表于 2011-1-6 21:17:53 | 显示全部楼层
^ 是位运算中的“相异”符号,对应AU3中的BitXOR函数。% 是取余符号,对应AU3的Mod函数。其余的都一样了,自己转换吧。
 楼主| 发表于 2011-1-6 22:16:14 | 显示全部楼层
本帖最后由 gzh888666 于 2011-1-6 22:28 编辑

回复 9# pusofalse

}
欢迎P版来!
}这个是干什么的?实在是没有一点C++的基础!自己转比较困难呀!
发表于 2011-1-7 10:50:40 | 显示全部楼层
你现在到底是要加密还是解密? 我想你要的应该是解密吧?
 楼主| 发表于 2011-1-7 19:50:50 | 显示全部楼层
是的!解密。网通的用户名都是加密了的!
发表于 2011-1-7 23:30:59 | 显示全部楼层
解密的话应该贴解密的函数 你贴的是加密的函数
发表于 2011-1-7 23:37:13 | 显示全部楼层
没测试 你自己测试下

Func CNCMAXEncode($input)
        $DicStr = "9012345678abcdeABCDEFGHIJKLMNfghijklmnUVWXYZxyzuvwopqrstOPQRST"
        Dim $DicB[16]
        $DicB[0] = 0x11
        $DicB[1] = 0x34
        $DicB[2] = 0xC9
        $DicB[3] = 0x23
        $DicB[4] = 0x75
        $DicB[5] = 0x18
        $DicB[6] = 0xD7
        $DicB[7] = 0xE2
        $DicB[8] = 0x12
        $DicB[9] = 0x35
        $DicB[10] = 0x29
        $DicB[11] = 0x2B
        $DicB[12] = 0xEC
        $DicB[13] = 0xB6
        $DicB[14] = 0x23
        $DicB[15] = 0x19

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

        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[Mod($i, 0x10)]
                                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
发表于 2011-1-8 08:58:27 | 显示全部楼层
代码学习一下....
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-14 00:18 , Processed in 0.079348 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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