我想创建一个应用程序,其中登录密码可以作为伪随机数生成器的种子来重新创建加密密钥。然后,这个加密密钥将用于加密发送到应用程序数据库和从应用程序数据库发送的所有数据,从而使用户数据连主机都无法访问。
这种prng的使用甚至可以是加密安全的吗?如果是,什么样的prng算法最适合这个应用?重要的是要强制一个体面的长度最小密码长度?还有其他问题吗?
你需要的是一个关键的派生函数,比如 PBKDF2 (基于密码的密钥派生函数2),它被设计成完全满足您的需要。
你通过密码,一个来自 CSPRNG 重复计数。随机种子不需要保密,可以与加密数据一起保存。计数的选择应使推导过程大约需要100毫秒。