解密未知的哈希加密

时间:2013-07-14 14:48:36

标签: mysql encryption hash pawn

我正在从文件转移到MYSQL,我想使用md5代替加密

public Encrypt(string[])
{
 for(new x=0; x < strlen(string); x++)
   {
    string[x] += (3^x) * (x % 15);
    if(string[x] > (0xff))
    {
     string[x] -= 256;
    }
   }
 return 1;
}

但我需要解密它。我不知道如何制作解密功能。有人能帮助我吗?

2 个答案:

答案 0 :(得分:1)

我对PAWN的理解是它使用以null结尾的字符串。如果是这种情况,那么这种加密通常不是可逆的过程。

考虑第13个字符(字符串[12])为“L”的字符串。将添加的偏移量为(3^12) * (12 % 15),即180.在ASCII中,字符“L”的值为76,当添加到180时为256.包装后适合0-255个字符范围变为零,可能会在中间某处终止加密字符串。

如果您单独存储原始字符串的长度或者它始终是固定长度,那么这可能不是问题。但是如果你依靠一个null终止符来确定字符串的长度,它就不会起作用。

答案 1 :(得分:0)

看起来“加密”会为每个字符添加一个从其位置派生的数字。可以通过减去相同的数字来撤消加密。

public Decrypt(string[])
{
 for(new x=0; x < strlen(string); x++)
   {
    string[x] -= (3^x) * (x % 15);
    if(string[x] < (0x00))
    {
     string[x] += 256;
    }
   }
 return 1;
}