Java 如果.class包含密码,如何处理?

Java 如果.class包含密码,如何处理?,java,security,Java,Security,我有一些.java文件,其中包含一些密码变量,这些变量有密码值 字符串密码=“xyz” 现在在运行之后,当我打开.class文件时,它包含这些密码。如何处理这个案件。我不想用DB来存储数据。如果我要更改变量名,那么它也将包含密码 **我希望.class不包含任何密码值。一种方法不是保存密码,而是对其进行加密并保存加密文本。这样,当您需要验证密码时,只需使用相同的逻辑加密传入的文本并进行比较。如果您仍然需要密码,则可以解密并使用。不建议直接存储密码,而是使用某种加密技术来存储加密值。 只要使用加密

我有一些.java文件,其中包含一些密码变量,这些变量有密码值

字符串密码=“xyz”

现在在运行之后,当我打开.class文件时,它包含这些密码。如何处理这个案件。我不想用DB来存储数据。如果我要更改变量名,那么它也将包含密码


**我希望.class不包含任何密码值。

一种方法不是保存密码,而是对其进行加密并保存加密文本。这样,当您需要验证密码时,只需使用相同的逻辑加密传入的文本并进行比较。如果您仍然需要密码,则可以解密并使用。

不建议直接存储密码,而是使用某种加密技术来存储加密值。

只要使用加密种子,就可以使用同一种子轻松解密。

您必须对密码进行编码,并将编码的密码设置为该变量。使用

String encodePassword(String rawPass, Object salt) throws DataAccessException
当您需要检查用户提供的密码是否有效时,请使用

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

请参见

为什么它是java文件,它不能是数据/属性文件吗?它不应该在java类中,它应该在外部属性文件或类似文件中。这样您就可以轻松地更改值,而无需编译代码,并且值不会出现在源代码中。这适用于所有类型的属性。但即使是这个文件也很容易读取。虽然保护服务器上的密码是一个常见问题。我假设代码将在服务器上运行。您的应用程序可能有一个上下文文件,其中包含数据库的用户名和密码。所以同样的问题也存在,确保没有人可以轻松访问它。@Mritunjay它可以是任何东西。我使用的是java文件,所以我提到了.security.stackexchange.com可能是一个更好的讨论java密钥库问题的论坛。就像在本例中一样,它使用密码:-公共类EncryptExample{public static void main(String[]args){String password=“secret”;String algorithm=“SHA”;byte[]plainText=password.getBytes();MessageDigest md=null;md=MessageDigest.getInstance(算法);md.reset();md.update(明文);byte[]encodedPassword=md.digest();}}}如何执行此操作?不,您没有。编写一个程序对其进行加密,然后将加密值硬编码到另一个程序中。不要滚动自己的密钥库。