我想将文件存储在共享Web服务器上,但希望隐藏该文件的内容。我将加密文件的内容,但我很清楚,如果有人有时间和知识,他们可以根据他们的名字来定位这些文件。加密/混淆文件名
什么是加密文件名或混淆它的最佳方法?
我看过创建一个单独的索引文件,并使用一个字典来存储原始和混淆的文件名,但如果我可以使用可逆加密,可能更容易/不太容易发生灾难,如果索引文件是丢失。
希望是有道理的。
更新: 要清楚我想这是可逆的,我想确保文件不能在驱动器上搜索(即混淆路径是不够的)。
我想将文件存储在共享Web服务器上,但希望隐藏该文件的内容。我将加密文件的内容,但我很清楚,如果有人有时间和知识,他们可以根据他们的名字来定位这些文件。加密/混淆文件名
什么是加密文件名或混淆它的最佳方法?
我看过创建一个单独的索引文件,并使用一个字典来存储原始和混淆的文件名,但如果我可以使用可逆加密,可能更容易/不太容易发生灾难,如果索引文件是丢失。
希望是有道理的。
更新: 要清楚我想这是可逆的,我想确保文件不能在驱动器上搜索(即混淆路径是不够的)。
你可以给url添加一个随机值。例如:
http://example.com/my-site/943hfkl3w7/SecretFile.zip
http://example.com/my-site/jf6490fh40/OtherFile.zip
这样,原来的文件名是从来没有改变过和文件位置都没有猜到的。
比如,你可以使用基于密钥的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));
对于大文件,RSA加密尤其具有非常差的性能 – Tearsdontfalls 2013-03-04 15:07:10
这是否适用于文件名?我不需要做一些额外的工作来说明特殊字符等吗? – 2013-03-04 15:17:37
Tearsdontfalls:只加密文件名就没关系,你不觉得吗? :/ – 2013-03-04 15:33:31
也许你可以做同样的指数的想法,但使用SQL? – Simon 2013-03-04 15:02:13
使用查找表。如果您对其进行加密以便能够解密,则其他人也可以执行相同的操作。 – 2013-03-04 15:03:23
SQL的问题在于分配的数据库非常小,小于100mb,这足以启动,但不会很长时间,否则这就是我所要做的。 – 2013-03-04 15:21:16