我正要为我目前正在开发的网站编写一个新的加密系统,如果可能的话,我想看看是否可以让某人在开始之前对其进行感知检查!
更新: 我原来的问题应该更清楚。我需要加密一些用户数据,我还需要能够在以后读取数据。而且,我还需要存储用户密码或密码哈希,以便在登录时验证用户。
计划是:
主密钥:创建一个 DPAPI 密钥设置器应用程序以获取基于文本的主密钥,通过 DPAPI 进行加密,然后将加密的输出保存到服务器上的文本文件中。这是我每次将站点移动到新服务器时都会执行的一次性任务。主密钥将用于执行 AES 加密。
当新用户注册时:
2.1。保存密码数据/密码数据的哈希值。
2.2. 加载主密钥文件,使用 DPAPI 解密密钥。使用解密的主密钥和每个用户数据的新随机 IV 来创建一个 AES 加密的字符串。通过在加密字符串前加上相应的随机 IV 来保存每个加密字符串,并插入到数据库中的 varchar 列中。
用户登录后:
3.1。匹配密码哈希以验证用户。
3.2. 对于每个加密的用户数据字段,将内容分成两部分:IV 和加密数据。从 DPAPI 和 IV 中获取主密钥,解密数据并在屏幕上显示。
听起来怎么样?以上有什么明显的缺陷吗?
我是新手,以前曾使用过企业库安全性来处理这类东西(.NET 核心中不再提供它!),所以任何帮助都将不胜感激!