我正在当前程序中实现javamail的实现。如果我直接在代码中预定义凭证,或者如果我通过文本/密码字段编写凭证,则成功发送测试邮件,但我希望它更加用户友好。我在我的程序中使用MySQL数据库,我可以存储smtp密码,但出于安全考虑,我不希望它以明文形式出现,我知道的唯一选择是同步加密并使用用户登录密码作为安全密码。
是否有其他选项可以安全地存储密码,甚至是用户不需要一直输入密码的其他选项? 当然,这只是一个选项,通过复选框保存凭据,如果用户不想这样,他必须一直写它。
感谢您的帮助。
答案 0 :(得分:-1)
将加密(散列)的密码存储在数据库中。使用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"));
如果要检查给定密码是否正确,请将其加密并以相同方式散列...并将散列字符串与存储在数据库中的值进行比较。