假设我们有一个要求,每个文件用户上传到我们的ASP。. NET Core MVC应用程序必须以加密形式存储在共享文件夹中,并且这些文件必须保留,直到用户删除它们(因此可能需要很长时间)。共享文件夹部分并不难,但"属性"是什么呢?如何加密上传的文件?当用户上传文件时,我们得到的是一个包含原始文件名的字符串和一个包含文件内容的流,这是起点,但我不知道如何从那里继续。
有很多Google结果,但是所有这些结果都直接在流上使用原语,我猜这样做会有一些明显的安全漏洞,所以必须有一个合适的方法来做到这一点。
property "是个有趣的词。这真的取决于你想要多安全,以及你对安全的定义。
如果您想确保文件在网络上被加密,您可能想要研究使用证书在TLS上保护您的应用程序。我假设您谈论的是一旦收到文件就对其进行加密,有很多方法,但实现它的方式确实取决于。更好的问题是谁有权访问这些文件,以及如何防止未经授权的用户访问其他人的文件。如果您让用户直接访问服务器上的这些文件,您可能需要重新考虑您的方法,而不是尝试为每个用户单独加密每个文件。
这个链接可能会有帮助。
无论如何,一个选项是对称加密。它不是最安全的,但很容易实现。需要密钥来加密和解密。您可以为每个用户使用一组密钥,但是如果这些密钥被泄露,那么每个用户的文件都会被泄露。另一方面,您可以为每个用户使用单独的密钥集,但这需要更多的维护。最流行的对称加密算法之一是高级加密标准(AES). . net Core有来自微软的库。