加密/混淆文件名

时间:2013-03-04 15:00:12

标签: c# encryption obfuscation

我想将文件存储在共享的Web服务器上,但希望隐藏文件的内容。我将加密文件的内容,但我非常清楚,如果有人有时间和知识,他们可以根据他们的名字定位文件。

加密文件名或对其进行模糊处理的最佳方法是什么?

我已经研究过创建一个单独的索引文件并使用Dictionary来存储原始和混淆的文件名但是如果我可以使用可逆加密来做同样的事情,如果索引文件丢失可能更容易/更不容易发生灾难

希望这是有道理的。

更新: 为了清楚起见,我希望这是可逆的,我想确保文件不能在驱动器上搜索(即混淆路径是不够的)。

2 个答案:

答案 0 :(得分:3)

您可以在网址中添加随机值。例如:

http://example.com/my-site/943hfkl3w7/SecretFile.zip
http://example.com/my-site/jf6490fh40/OtherFile.zip

这样,原始文件名永远不会改变,文件位置也不可猜测。

答案 1 :(得分:0)

例如,您可以根据之前生成的密钥使用RSA加密:

var provider = new System.Security.Cryptography.RSACryptoServiceProvider();
provider.ImportParameters(RSA_KEY);

var encryptedBytes = provider.Encrypt(System.Text.Encoding.UTF8.GetBytes("Hello World!"), true);

string decryptedTest = System.Text.Encoding.UTF8.GetString(provider.Decrypt(encryptedBytes, true));