JavaMail 保存密码

标签 java security passwords jakarta-mail

我正在我当前的程序中实现 javamail。如果我直接在代码中预定义凭据,或者如果我通过文本/密码字段编写,测试邮件将成功发送,但我希望它更加用户友好。我正在为我的程序使用 MySQL 数据库,我可以在其中存储 smtp 密码,但出于安全原因,我不希望它以明文形式显示,我知道的唯一选择是同步加密并使用用户登录密码作为安全密码.

是否有任何其他选项可以安全地存储密码,或者用户不需要一直输入密码的其他选项? 可以肯定的是,这只是通过复选框保存凭据的一个选项,如果用户不想要这个,他必须一直写下去。

感谢您的帮助。

最佳答案

将密码加密(散列)存储在数据库中。使用 Apache Common 的库进行加密例如:

String password = "PASSWORD_TO_ENCRYPTED";
String salted = password + username; //salt the password value, using the username is only an example 
String hash = DigestUtils.sha256Hex(salted.getBytes("UTF-8"));

如果您想检查给定的密码是否正确,请对其加盐并以相同的方式对其进行哈希处理。然后将哈希字符串与存储在数据库中的值进行比较。

关于JavaMail 保存密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26744883/

相关文章:

java - 我有 100 种使用 Java selenium Junit 进行测试的方法。如何在不使用@test注释的情况下编写方法

java - 解决包 org.geoserver.wcs.kvp 中的依赖关系

Java:动态排序数组列表

php - 关于 Ajax 黑客的问题

passwords - 如何以编程方式创建/检测密码中的键盘运行?

javascript - 为什么这些字符被视为大写?

java - 另一个 Big Nerd Ranch Android 崩溃错误

security - 如何从 DataAnnotations.ValidationAttribute 继承(它在 .NET 4 中的 Visual Studio 调试主机下出现 SecureCritical !)

database - 在 Oracle 中推荐的加密方式是什么?

python - 通过 Python/Fabric 从命令行更改 Unix 密码