2011-12-04 12 views
4

私はJavaベースのソフトウェアでパスワードの暗号化解読にJASYPTを使用しています。今暗号化キーをJavaコードに格納しますか?

 StrongTextEncryptor textEncryptor = new StrongTextEncryptor(); 
     textEncryptor.setPassword(PASSWORD_ENCRYPTION_KEY); 
     String ePasswd = textEncryptor.encrypt(txtPasswd); 

、どこで、どのように私は上記のコードで使用されるこのPASSWORD_ENCRYPTION_KEYを保存する必要があります。これは、我々はパスワードを暗号化する方法、ありますか?これらの鍵をJavaプログラムに格納してアクセスする最も安全で一般的な方法は何ですか?これは間違ったアプローチであるとして、あなたのプログラムでPASSWORD_ENCRYPTION_KEYを保存should't

おかげで、どこにも ディープ

+0

最も安全な場所は「ユーザーのコンピュータにはない」です。 – millimoose

+1

http://ronrothman.com/public/leftbraned/password-security-its-not-that-hard-but-you-still-cant-get-it-right/をお読みください。あなたのソフトウェアがあなたがそれらを回復できるような方法でパスワードを保存するならば、あなたは暗号でそれらを難読化しても、特にあなたが暗号化されたデータと共に暗号化キーを保管している場合でも、 –

+0

あなたはそこにどのようなパスワードを保存していますか?それがユーザーパスワードであれば、James Clarkが提案したように塩漬けのハッシュを使ってください。そうでなければ、そのパスワードのコンテキストに依存します – DarkSquirrel42

答えて

2

...。同様に、owlsteadは既に指摘している:Public key infrastructure

基本的には、アクセスする必要のあるすべてのユーザーのPDFを暗号化して、個人用の秘密鍵で解読できるようにする必要があります。これは、AES-256でPDFを暗号化してから、で、各ユーザの公開鍵で使用された鍵を暗号化します。これらの個人的に暗号化された鍵は保管のために安全です。

+0

誰もログインしていないヘッドレスアプリを使って、どうすればいいですか?この場合、私が考えることができる唯一のIDは、アプリケーションが実行されるUnixユーザーのIDです。そのユーザーの秘密鍵はどこに保管しますか?確かにそれは '/ home/user/.ssh /'ディレクトリにあり、したがって同じマシン上にあるはずです。 – Adam

関連する問題