在我的业务场景中(基本上是一个云文件共享应用程序),我有以下情况:
1. 用户上传文件到文件夹。 2. 检查文件夹是否受到PIN保护。 3. 如果文件夹没有受到PIN保护,则使用存储在应用程序中的预定义密码和存储在数据库中的IV密钥对文件进行加密。 4. 如果文件夹受到PIN保护,则使用预定义的密码+PIN值+存储在数据库中的IV密钥对文件进行加密。
问题是AES具有有限的密码长度,当最大密钥大小(16、24、32字节)超过时会变成无效的密钥长度。我的主要问题是如何在保持安全性的同时实现类似的加密。
目前,文件夹的PIN长度没有限制,但似乎应该将其限制为至少AES密钥通行证的最大长度。稍微改进一下可以使用RijndaelManaged,在通行证长度方面具有更多的灵活性。
如果有任何建议,将不胜感激。
注意:我认为代码不会增加问题的价值,但如果有人不同意,请让我知道,我会添加它。
1. 用户上传文件到文件夹。 2. 检查文件夹是否受到PIN保护。 3. 如果文件夹没有受到PIN保护,则使用存储在应用程序中的预定义密码和存储在数据库中的IV密钥对文件进行加密。 4. 如果文件夹受到PIN保护,则使用预定义的密码+PIN值+存储在数据库中的IV密钥对文件进行加密。
问题是AES具有有限的密码长度,当最大密钥大小(16、24、32字节)超过时会变成无效的密钥长度。我的主要问题是如何在保持安全性的同时实现类似的加密。
目前,文件夹的PIN长度没有限制,但似乎应该将其限制为至少AES密钥通行证的最大长度。稍微改进一下可以使用RijndaelManaged,在通行证长度方面具有更多的灵活性。
如果有任何建议,将不胜感激。
注意:我认为代码不会增加问题的价值,但如果有人不同意,请让我知道,我会添加它。