我正在学习做适当的加密实现,我认为这是一个练习,我会创建一个加密的文本编辑器。如何在基于密码的加密中处理salt
我的第一次尝试使用用户提供的密码的SHA-512散列作为密钥,它的功能很好。尽管我将这个IV存储在文件的头文件中,但没有受到保护,这让我很担心。
然后我阅读stackoverflow,我应该使用SecretKeyFactory(我使用Java)来做PBE,现在我另外需要提供一个盐。所以现在我也将盐储存在标题中,但这似乎破坏了盐的全部用途。那么这应该如何工作?当我保存艾丽丝时,她会为她的文件选择一个密码,我是否应该说“在这里,记住随机数字和密码。”?我希望生成的文件能够通过电子邮件发送给Bob,所以盐不能存储在本地。
正如我的应用程序所显示的那样,IV和盐都是公开的。我希望我的用户只需在密码保护时将他们的文件发送给Bob时知道密码,但我找不到任何如何完成的示例。
感谢您的帮助!