0

Java プログラムで文字列変数を取得しましたが、次のコードによって生成されることがわかっています。

public static String code(String text) {
    final byte[] bytes = text.getBytes();
    HashCode  hc = Hashing.murmur3_32().hashBytes(bytes, 0, bytes.length);
    long tmp = hc.asInt();

StringBuilder sb = new StringBuilder("");
    sb.append(Integer.toHexString((int) tmp));
    return sb.toString();
}

この変数をデコードして元のテキストを取得するにはどうすればよいですか?

4

2 に答える 2

0

いいえ、そのような方法はありません。ハッシュ関数は非可逆です。

考えてみると、可能なすべての文字列のセットは、可能なすべての int のセットよりもはるかに大きく、双方向のマッピングは不可能です。

ハッシュ コードから文字列を復元できれば、任意の量のデータを 1 つの int に圧縮し、それを完全に再構築できるようになります。

于 2013-05-22T08:44:00.300 に答える