2016-12-13 5 views
0

いくつかの.javaファイルにはパスワード変数が含まれていますが、これらの変数はパスワード値を持っています。.classにパスワードが含まれている場合の対処方法

文字列パスワード= "xyz";

実行後、.classファイルを開くと、そのパスワードが含まれます。このケースをどう扱うか。私はDBを格納するために使用したくありません。変数名を変更する場合は、パスワードも含まれます。

** .classにはパスワードの値を含めないでください。

+2

を参照してください使用する必要がある場合は

String encodePassword(String rawPass, Object salt) throws DataAccessException 

を使用して、それがデータすることはできません/プロパティファイル? – Mritunjay

+0

これはJavaクラスに含まれてはいけません。外部プロパティーファイルなどにある必要があります。これは、コードをコンパイルせずに値を簡単に変更できるため、値はソースコードにはありません。これはあらゆる種類のプロパティに当てはまります。このファイルでも簡単に読むことができます。サーバー上のパスワードを保護することは共通の問題です。私はコードがサーバーに行くと仮定します。アプリケーションにはおそらくデータベースのユーザー名とパスワードを含むコンテキストファイルがあります。誰も簡単にアクセスできるように、同じ問題が存在します。 – slipperyseal

+0

@Mritunjayそれは何でもかまいません。私はjavaファイルを使用していたので、私は言及した。 –

答えて

0

パスワードを直接保存するのではなく、暗号化された値を保存するために何らかの種類の暗号化技術を使用することはお勧めしません。
暗号化シードを使用している限り、同じシードを使用して簡単に復号化できます。

+1

私は暗号化技術を使用する場合は、私も暗号化する必要があります。この例のようにパスワードを使用しています: - public class EncryptExample { \t public static void main(String [] args){ \t \t String password = "secret"; \t \t文字列アルゴリズム= "SHA"; \t \t [] plainText = password.getBytes(); \t \t MessageDigest md = null; \t \t md = MessageDigest.getInstance(algorithm); \t \t md.reset(); \t \t \t \t md.update(plainText); \t \tバイト[] encodedPassword = md.digest(); \t} }これを行う方法は? –

+0

いいえ、あなたはしません。 1つのプログラムを作成して暗号化し、暗号化された値を別のプログラムにハードコードします。 –

-2

パスワードを保存するのではなく、暗号化して暗号化されたテキストを保存することです。パスワードを確認する必要がある場合は、同じロジックを使用して受信テキストを暗号化して比較するだけです。引き続きパスワードが必要な場合は、復号化して使用することができます。

+0

独自のキーストアをロールしないでください。 –

0

パスワードをエンコードし、エンコードされたパスワードをその変数に設定する必要があります。あなたは、ユーザが指定したパスワードが有効であるかないことを確認し、それはjavaファイルですなぜ

boolean isPasswordValid(String encPass, String rawPass, Object salt) throws DataAccessException 

here

関連する問題