我正在从文件转移到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;
}
但我需要解密它。我不知道如何制作解密功能。有人能帮助我吗?
答案 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;
}