我想將文件存儲在共享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