-2

ハッシュコードを解読するには?デコードと同じですか?? このコードを復号化/デコードするにはどうすればよいですか? 誰かが私を助けてくれますか。

enter.setOnClickListener(new OnClickListener() 
    {
    @Override
    public void onClick(View v) 
    {
        // TODO Auto-generated method stub
        String a = txtID.getText().toString();
         int b = a.hashCode();
        txtCode.setText(b);
    }
    }

同様に、コードを逆方向に読み取り、ハッシュおよびトリミングされた元のデータを表示します。

4

2 に答える 2

2

hashCode メソッドは java.lang.Object から来ており、以下の規約に従う必要があります (従わなければなりませんか?):

  • Java アプリケーションの実行中に同じオブジェクトに対して複数回呼び出された場合は常に、オブジェクトの equals 比較で使用される情報が変更されていない限り、hashCode メソッドは一貫して同じ整数を返す必要があります。この整数は、あるアプリケーションの実行から同じアプリケーションの別の実行まで一貫性を保つ必要はありません。
  • equals(Object) メソッドに従って 2 つのオブジェクトが等しい場合、2 つのオブジェクトのそれぞれで hashCode メソッドを呼び出すと、同じ整数結果が生成される必要があります。
  • equals(java.lang.Object) メソッドに従って 2 つのオブジェクトが等しくない場合、2 つのオブジェクトのそれぞれで hashCode メソッドを呼び出すと、異なる整数結果が生成される必要はありません。ただし、プログラマーは、等しくないオブジェクトに対して個別の整数結果を生成すると、ハッシュテーブルのパフォーマンスが向上する可能性があることに注意する必要があります。

そのコンテキストで「hashCodeを復号化する」という意味がわかりません。ここで探している機能/動作ではない可能性があります。

詳細情報: http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#hashCode()

于 2013-05-30T00:12:38.583 に答える
2

Object's.hashCode()とは何かを誤解しているようです。特定のオブジェクトの「暗号的に安全な」ハッシュではありません。

その唯一の役割は、.equals()/.hashCode() 契約に従うことです。コントラクトには基本的に 1 つのルールがあります。2 つのオブジェクト インスタンスが等しいと見なされる場合、それらのハッシュ コードは等しくなければなりません。そしてそれはそれについてです。

これは完全に正当な hashCode() の実装です:

@Override
public int hashCode() {
    return 42; //legal but useless
}

この関数の最も顕著な用途は、Sets で使用される場合です。したがって、これには s のキーとしての使用が含まれますMap。どちらの場合も、基本的な用途はハッシュ テーブルです。これが、使用されるハッシュ アルゴリズムが適切な分布を持つ必要がある理由です。

于 2013-05-30T00:15:54.820 に答える