看别人实现的python代码根本不能用,就自己写了个,也顺便做了个GUI

解密示范,密文来自网络

用aardio导入python库,写了个GUI,方便不懂python的同学研究。

可执行文件下载地址,链接: https://pan.baidu.com/s/1nuAvJwH 密码: a749

SHA1 Hash 70744c785273a99d37299351b07654c52080428a

python3.6:

#PlainStr为明文
#key为密钥,一般为Acxylf365jw或者Encrypt01
#Atuhor:Lz1y
def jiemi(PlainStr,key):
    if len(PlainStr) % 2 == 0:
        p = int(round(len(PlainStr)) / 2.0)
        PlainStr = ''.join(reversed(PlainStr[:p])) + ''.join(reversed(PlainStr[-p:]))
    num3 = len(PlainStr)
    k = 0
    result = ''
    for v in PlainStr:
        if (ord(v) ^ ord(key[k]) < 32) | (ord(v) ^ ord(key[k]) > 126) | (ord(v) < 0) | (ord(v) > 255):
            result += v
        else:
            #debug 
            #print("ord(v):"+str(ord(v))+"\tord(key[k]"+str(ord(key[k])))
            #print("ord(v) ^ ord(key[k]):"+str(ord(v) ^ ord(key[k])))

            result += chr(ord(v) ^ ord(key[k]))
        k = 0 if k == len(key) else k + 1
    return result
解密示范,密文来自网络

 

 

 

 

附上源代码,VB转成C#了,VB那种语法实在是看得难受。

public static string jiemi(string PlainStr, string key)
{
    string str3;
    int num2 = 1;
    if ((Strings.Len(PlainStr) % 2) == 0)
    {
        string str4 = Strings.StrReverse(Strings.Left(PlainStr, (int) Math.Round((double) (((double) Strings.Len(PlainStr)) / 2.0))));
        string str5 = Strings.StrReverse(Strings.Right(PlainStr, (int) Math.Round((double) (((double) Strings.Len(PlainStr)) / 2.0))));
        PlainStr = str4 + str5;
    }
    int num3 = Strings.Len(PlainStr);
    for (int i = 1; i <= num3; i++)
    {
        string str6 = Strings.Mid(PlainStr, i, 1);
        string str2 = Strings.Mid(key, num2, 1);
        if (((((Strings.Asc(str6) ^ Strings.Asc(str2)) < 0x20) | ((Strings.Asc(str6) ^ Strings.Asc(str2)) > 0x7e)) | (Strings.Asc(str6) < 0)) | (Strings.Asc(str6) > 0xff))
        {
            str3 = str3 + str6;
        }
        else
        {
            str3 = str3 + StringType.FromChar(Strings.Chr(Strings.Asc(str6) ^ Strings.Asc(str2)));
        }
        if (num2 == Strings.Len(key))
        {
            num2 = 0;
        }
        num2++;
    }
    return str3;
}

 



本文链接地址: 正方教务系统 用户密码以及数据库解密算法

原创文章,转载请注明: 转载自Lz1y's Blog

发表评论

电子邮件地址不会被公开。 必填项已用*标注