如果我有加密和解密密码的功能,有没有办法我们不能在我们的java代码中打印解密的密码?

时间:2017-05-17 07:06:42

标签: java encryption password-encryption

我有一个加密和解密功能,用于加密和解密密码。当我将密码发送到数据库时,我对其进行加密并发送但是要使用它我首先将其解密并发送到那里。  但我不希望任何人使用 System.out.println 在控制台上打印密码。 它应该以某种方式锁定。 我们能为此做些什么?我已经在java中编码并使用Key编写了我的代码。 我的代码是

String text = "Hello World";
String key = "Bar12345Bar12345"; // 128 bit key
 // Create key and cipher
 Key aesKey = new SecretKeySpec(key.getBytes(), "AES");
 Cipher cipher = Cipher.getInstance("AES");
 // encrypt the text
 cipher.init(Cipher.ENCRYPT_MODE, aesKey);
 byte[] encrypted = cipher.doFinal(text.getBytes());
 System.err.println(new String(encrypted));
// decrypt the text
cipher.init(Cipher.DECRYPT_MODE, aesKey); String decrypted = new String(cipher.doFinal(encrypted));
System.err.println(decrypted);

1 个答案:

答案 0 :(得分:1)

以下是您的问题的可能解决方案。

永远不要加密/解密密码,这可能是安全漏洞。 使用散列函数对字符串进行密码散列,通常存储在数据库中的散列,以及密码验证通常通过将散列密码与数据库中的密码进行比较来完成。

因此,除了有效的密码持有者之外,任何人都无法知道真正的密码。