我有一个Java桌面程序,我想以最安全的方式在其中存储登录凭据。我曾考虑过使用数据库,但对此感觉很不好,我宁愿将其存储在用户端本地,但也需要非常安全。该软件基本上围绕安全性而发展。
因此,我考虑过使用几轮非常强的加密(如果可能)。然后,我需要找到如何安全地存储这些凭据。
你将如何进行?你有什么推荐的吗?
如果要将密码存储在数据库中,最优选的方式是对密码进行哈希处理。大多数Web应用程序(例如WordPress)都使用此功能。
你可以使用算法对密码进行加密和解密,但不能“取消散列”密码。
你如何授权?
假设你的密码是“ 12345 ”,并且以散列形式将其存储在数据库中作为“ $ 1 $ O3JMY.Tw $ AdLnLjQ / 5jXF9.MTp3gHv / ”。
因此,每当用户输入密码时,你便会再次对该密码进行哈希处理,并比较两个哈希密码。你不能/不能从数据库中“解密”并进行比较。散列时无法看到用户密码的明文。
检查此链接以了解Java中的哈希: 如何在Java中哈希密码?
不过,哈希和加密之间有什么区别?哈希会更强,因为您不能取消哈希?我会验证您的答案,因为我认为将嵌入式数据库与哈希结合起来可能是一个很好的开始
散列是一种方式。如前所述,您无法从哈希密码中获得清晰的文本。一般来说,您不必从密码中获得明文,因为授权也可以从散列字符串中完成。这样,您可以保护用户的安全,即使系统发生任何问题也不会泄露用户的密码。