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 - 将数组分割为 16 个字符,然后将每个部分放入一个数组中

Windows 10 安全存储

security -/var/lib/kubelet/pods下的目录权限

java - 如何隐藏数据库密码?

security - 受密码保护的 ZIP 文件是否存在任何已知标准或安全漏洞?

c# - Windows 哈希密码

Java:将 ArrayList<Byte> 转换为 ByteBuffer

java - 将用Java编写的.jar导入Android,noClassDefFoundError

java - 是否可以将同一个对象保存到两个不同的表房间?

javascript - 为什么有些人认为 JavaScript 不好?