2011-08-11 4 views
0

ユーザーが入力したパスワードをUIのテキストボックスに暗号化して保存し、getPassword()メソッドが呼び出されたときに復号化する必要があります。JDK 1.4 APIでは、ユーザーがテキストボックスに入力したユーザーパスワードをどのように暗号化しますか?

正しいJDK 1.4 APIは何ですか?

ありがとうございます。

+0

テキストボックスのパスワードを隠そうとしているだけですか、それとも暗号化する必要がありますか?暗号化する場合、最終的に暗号化されたパスワードをどこに保持していますか?よろしくお願いいたします。 –

+0

こんにちは。迅速な対応に感謝します。私はメモリにそれを格納するパスワードを暗号化し、getterメソッドを呼び出すときにそれを解読する必要があります。ありがとうございました – dojomedojo

+0

これは、あなたがメモリにキーを保持する必要があるので、データが不明瞭になることに注意してください。 –

答えて

1

の例では、MD5暗号化のためのJava 1.4暗号インターフェースを使用して、ここにあります:

http://download.oracle.com/javase/1.4.2/docs/guide/security/jce/JCERefGuide.html#HmacEx

はフグ: http://download.oracle.com/javase/1.4.2/docs/guide/security/jce/JCERefGuide.html#BlowKeyEx

+0

MD5は暗号化システムではなく、ハッシュ専用です。これは可逆的ではない。これはここでは無関係であることを意味します。ブローフィッシュ、一方で... – njzk2

+0

こんにちは、正しいAPIは何ですか?私はそれを格納するパスワードを暗号化し、getterメソッドを呼び出すときにそれを解読する必要があります。どうもありがとう。 – dojomedojo

+0

Laurent:njzk2は正しいですが、MD5はUnixが使用しているものです。パスワードとMD5を取ってどこかに保管してください。ユーザーが再びログインすると、パスワードを入力してMD5で入力し、データベースにあるものと比較します。 パスワードが等しい場合は、パスワードは正しいです。 – cs94njw

1

あなたはあなたのパスワードを保護したい場合は、使用することがありますMD5またはSHA1のようなハッシュアルゴリズム。あなたはログイン時に提供するものとそれを比較するために保存されたパスワードを復号化するのではなく提供されたパスワードをハッシュし、ここにあなたがハッシュするために使用できる方法のいくつかのドキュメントHashs

を比較しません: https://www.owasp.org/index.php/Hashing_Java

0

「AES/CBC/PKCS5Padding」メカニズム(getInstance()内)でCipherを使用するだけです。 SecretKeySpecを使用して作成された128ビット(16バイト)のAESキーを使用できます(これは既にキーです)。ビットレートが高いほど、無制限の暗号化ポリシーファイルをインストールする必要があります。私が注意したように、キーはアプリケーションに格納する必要があるため、これはデータを隠すだけであることに注意してください。何をすべきか知っている人は、パスワードとキーの両方を取得し、 。

複数のパスワードを同じキーで保存する場合は、パスワードごとに別々のランダムIVを生成して保存してください。この最後の段落の助言は、何もせずにデータを復号化するよりも、鍵を取得する方が簡単なので、物事を正しく暗号化する方法を知っておくことが、より多くのことです。

+0

時々、コード難読化とむしろランダムなXORringを併用する方が、パスワードを隠すより良い方法ではないかと思います。つまり、Cipher.getInstance()の呼び出しとそのメカニズムの文字列が目立ちます。しかし、とにかくDRMのような仕組みになってしまいます。 –

関連する問題