欢迎来到代码驿站!

当前位置:首页 >

联众密码的逆向算法公布

时间:2021-03-08 11:40:49|栏目:|点击:



function Decode(aValue:String):string;
var
    iValue:array [0..63]of Byte;
    i,j,k,iAL,iCL:Byte;
    Pass:array[0..15]of char;  //密码最长不超过15位
begin
    //str to int
    i:=0;
    j:=0;
    while (1=1) do
    begin
        //这里需要改进
        j:=Pos(' ',aValue);
        if j<=0 then
        begin
            iValue[i]:=strToint(aValue);
            break;
        end;
        iValue[i]:=StrToInt(Copy(aValue,1,j-1));
        inc(i);
        aValue:=copy(aValue,j+1,length(aValue)-j);
    end;

    //xor
    for i:=63 downto 1 do
        iValue[i-1]:=iValue[i-1] xor iValue[i];

    //
    for i:=15 downto 1 do
    begin
        iAL:=iValue[i];
        iCL:=iAL;
        ASM
            MOV AL,iAL
            SAR AL,4
            AND AL,$F
            MOV iAL,AL
        end;    //直接用SHR也可以,不过反汇编是SAR,pascal里没有SAR   
        j:=iAL+$30;
        iAL:=iValue[j];
        iCL:=iCL and $f;
        iCL:=iValue[0]+iCL;
        k:=iCL;
        iCL:=iValue[k];
        iValue[j]:=iCL;
        iValue[k]:=iAL;
    end;

    i:=iValue[0];
    j:=1;
    while iValue[i]<>0 do
    begin
        Pass[j-1]:=chr(iValue[i]);
        Inc(i);
        Inc(j);
    end;

    Result:=Pass;
end;  

上一篇:生吃番茄有讲究

栏    目:

下一篇:Powershell小技巧之通过EventLog查看近期电脑开机和关机时间

本文标题:联众密码的逆向算法公布

本文地址:http://www.codeinn.net/misctech/76902.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有