Byte[] 密钥加密 C# Aes
Byte[] Key Encryption C# Aes
我正在制作一个程序来保存我的密码,我正在使用Aes加密方法来加密和解密我的文件。
现在这是我的问题,我正在使用 this 方法来做到这一点。
每次我 运行 程序都会生成一个新的 KEY 和一个新的 IV,但程序要读取每次我再次打开程序时,我需要的文件都具有相同的密钥和 iv。
他们的密钥和 IV 存储为 byte[]
两者都应该是 "secret"
它们创建的字节有时对于编译器来说太多而无法读取,或者它只是吓坏了。
有什么方法可以将它们设置为常量吗?还是将其保存到文件中更好?
They key and the IV is stored as a byte[] both of which should be "secret"
不完全是。 IV 不是秘密。 IV 应该是 不同的 并且对于你加密的每个东西都是随机的,但它可以以明文形式存储。它们应该由 CSPRNG 生成。加密 IV 并没有真正起到作用。
Everytime I run the program it generates a new KEY and a new IV
您的密钥应该来自另一个密码。也就是说,您的应用程序应该通过 PBKDF2 之类的方式请求 "master" 密码,即 运行,并且其输出用作您加密和解密内容的 AES 密钥。使用这种方法,您的应用程序根本不需要存储密钥。
考虑是否需要 "encrypt" 密码。如果您使用密码进行验证,例如登录,那么使用 bcrypt 之类的东西对其进行哈希处理会更好。
还要记住,这是一件极其很难做到的事情。到目前为止,您还没有在您的加密中提到任何身份验证(例如 Encrypt-then-Mac)等
我正在制作一个程序来保存我的密码,我正在使用Aes加密方法来加密和解密我的文件。 现在这是我的问题,我正在使用 this 方法来做到这一点。
每次我 运行 程序都会生成一个新的 KEY 和一个新的 IV,但程序要读取每次我再次打开程序时,我需要的文件都具有相同的密钥和 iv。
他们的密钥和 IV 存储为 byte[]
两者都应该是 "secret"
它们创建的字节有时对于编译器来说太多而无法读取,或者它只是吓坏了。
有什么方法可以将它们设置为常量吗?还是将其保存到文件中更好?
They key and the IV is stored as a byte[] both of which should be "secret"
不完全是。 IV 不是秘密。 IV 应该是 不同的 并且对于你加密的每个东西都是随机的,但它可以以明文形式存储。它们应该由 CSPRNG 生成。加密 IV 并没有真正起到作用。
Everytime I run the program it generates a new KEY and a new IV
您的密钥应该来自另一个密码。也就是说,您的应用程序应该通过 PBKDF2 之类的方式请求 "master" 密码,即 运行,并且其输出用作您加密和解密内容的 AES 密钥。使用这种方法,您的应用程序根本不需要存储密钥。
考虑是否需要 "encrypt" 密码。如果您使用密码进行验证,例如登录,那么使用 bcrypt 之类的东西对其进行哈希处理会更好。
还要记住,这是一件极其很难做到的事情。到目前为止,您还没有在您的加密中提到任何身份验证(例如 Encrypt-then-Mac)等