我正在制作一个程序来保存我的密码,我正在使用Aes加密方法来加密和解密我的文件。 现在这是我的问题,我使用this方法来完成它。
每次我运行程序时,它都会生成一个新的 KEY 和一个新的 IV ,但是对于程序来说,我需要读取相同的密钥和iv时间我再次打开程序。
他们键,IV存储为byte[]
,两者都应该是#34;秘密"
他们创建的字节有时太多,编译器无法读取,或者它只是吓坏了。
有什么方法可以将它们设置为常量?或者将它保存到文件中更好?
答案 0 :(得分:0)
他们键,IV存储为byte [],两者都应该是" secret"
不完全。 IV不是秘密。对于您加密的每个内容,IV应该不同并且是随机的,但它可以以明文形式存储。它们应该由CSPRNG生成。加密IV并不能真正达到目的。
每次运行程序时,它都会生成一个新的KEY和一个新的IV
您的密钥应来自其他密码。也就是说,你的应用应该要求一个"主人"密码,通过类似PBKDF2的方式运行,其输出用作加密和解密内容的AES密钥。使用这种方法,您的应用程序根本不需要存储密钥。
考虑您是否需要加密"完全没有密码。如果您使用密码进行验证,例如登录,则使用bcrypt之类的东西对它们进行散列更好。
另外请记住,这是一个非常难以做到的事情。到目前为止,您还没有提到加密中的任何身份验证(例如Encrypt-then-Mac)等。