让我首先说....是的,过去两天我在这里阅读了大量帖子。不,我对加密一无所知,所以不要打扰......你不应该玩火评论......
我有一个 asp.net MVC3 应用程序,并希望使用每个用户的密钥加密用户上传的照片。我想保存此密钥并将其用于同一用户的任何进一步上传和解密。(虽然,我想我可以为每张照片存储一个密钥,这与这个问题并不真正相关,但是......)
我从这里的代码开始:http: //www.codeproject.com/Articles/33344/Photo-Video-Viewer-with-Encryption-Capability
它工作正常。它加密照片并将它们解密为一个新文件,一切都很好。“on the fly 版本”也可以工作并返回一个 MemoryStream,我可以将它用于我的 WebImage。但是,正如您所看到的,该示例是一次加密和解密,并且密钥是一个全局变量(我不知道它是什么,我只是在测试时使用了自动生成的密钥。
所以,我需要有人告诉我如何为每个用户在数据库中存储生成的密钥(我猜是 IV?告诉你我对 enc 一无所知......),然后提取那个(那些)值退出以用于动态解密。我不会费心发布我所有的代码,因为它几乎与上述网站上的相同。
我在这里阅读了另一篇文章,它说要使用:
string x = Convert.ToBase64String(RMCrypto.Key);
然后,当我想解密时,我使用了:
RMCrypto.Key = Convert.FromBase64String(x);
我以这种方式将密钥和 IV 都存储在我的 SQL DB 中,但是当我提取值并尝试解密时,我得到一个错误,即数据不是预期的长度。
也许我完全不在基地,或者可能是三行代码......如果需要更多信息,请告诉我。
谢谢!