0

ファイルから 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;
}

しかし、私はそれを解読する必要があります。復号化機能の作り方がわかりません。誰でも私を助けることができますか?

4

2 に答える 2

1

PAWN についての私の理解では、NULL で終わる文字列を使用しています。その場合、この暗号化は一般に可逆プロセスではありません。

13 番目の文字 (string[12]) が「L」である文字列を考えてみましょう。それに追加されるオフセットは(3^12) * (12 % 15)、つまり 180 です。ASCII では、文字「L」の値は 76 で、180 に追加すると 256 になります。0 ~ 255 文字の範囲に収まるようにラップすると、ゼロになります。 、暗号化された文字列が途中で終了する可能性があります。

元の文字列の長さを別々に保存している場合、または常に固定長である場合、これは問題にならない可能性があります。ただし、文字列の長さを決定するためにヌル ターミネータに依存している場合は、機能しません。

于 2013-07-14T15:34:06.650 に答える