我想将文件存储在共享的 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));