告訴我加密XML文件的最簡單方法。這是一個用於某些配置的文件,不希望人們使用它。安全性不是問題,因爲它是一個私人工具。c#encrypt xml文件
2
A
回答
6
如果您不關心安全性,只需將文件與散列一起保存。即:
your.xml 和 your.xml.hash
可以使用System.Security.Cryptography.MD5Managed例如。這只是保存xml文件,然後保存文件本身的散列。閱讀時,只需計算哈希值,與保存的內容進行比較,然後按常規使用xml文件。
當然,xml文件中的信息沒有加密,可以讀取,但是如果您編輯該文件,則哈希將不正確,並且您的程序將發現該嘗試。保持簡單:)
3
如果您只是想使其更難修改,請通過DeflateStream發送。作爲一個額外的好處,該文件將更小。
0
我可能只是通過這個包裝了DPAPI的類來運行整個文件,然後再讀/寫它。得到的輸出編碼,因此它可以寫出一個文本文件:
using System;
using System.Security.Cryptography;
using System.Text;
/// <summary>
/// used for encryption and decryption
/// </summary>
public static class DataProtector
{
private const string EntropyValue = "secret";
/// <summary>
/// Encrypts a string using the DPAPI.
/// </summary>
/// <param name="stringToEncrypt">The string to encrypt.</param>
/// <returns>encrypt data</returns>
public static string EncryptData(string stringToEncrypt)
{
byte[] encryptedData = ProtectedData.Protect(Encoding.Unicode.GetBytes(stringToEncrypt), Encoding.Unicode.GetBytes(EntropyValue), DataProtectionScope.LocalMachine);
return Convert.ToBase64String(encryptedData);
}
/// <summary>
/// Decrypts a string using the DPAPI.
/// </summary>
/// <param name="stringToDecrypt">The string to decrypt.</param>
/// <returns>decrypted data</returns>
public static string DecryptData(string stringToDecrypt)
{
byte[] decryptedData = ProtectedData.Unprotect(Convert.FromBase64String(stringToDecrypt), Encoding.Unicode.GetBytes(EntropyValue), DataProtectionScope.LocalMachine);
return Encoding.Unicode.GetString(decryptedData);
}
}
1
DPAPI是要保護的東西,在Windows系統中最簡單的方法 - 看ProtectedData.Protect對於初學者。
相關問題
- 1. AES-Encrypt-then-MAC與.NET的大文件
- 2. mySQL encrypt()函數的objective-c實現
- 3. c#xml請求與xml文件
- 4. C#/ XML使用XML文件填充TreeView
- 5. 用C#編輯XML文件
- 6. C#加載XML文件
- 7. 用C#讀取XML文件
- 8. WP8創建XML文件c#
- 9. 的xml文件讀取C#
- 10. c#,不能DeSerialize XMl文件
- 11. C#XML語言文件
- 12. 編輯XML文件C#
- 13. C#XML合併(2+文件)
- 14. XML文件到C#對象
- 15. Objective-C解析XML文件
- 16. .net C#分割xml文件
- 17. C#解析XML文件
- 18. c#讀取xml文件
- 19. C#解析XML(.xspf文件)
- 20. C#解析XML文件
- 21. 從XML文件讀取C#
- 22. 平整的XML文件c#
- 23. 更新XML文件(C#/ Linq)
- 24. 閱讀XML文件(C#)
- 25. XML文件創建在C#
- 26. 用C解析XML文件#
- 27. C#的xml文件訪問
- 28. Openfire使用MySQL ENCRYPT
- 29. Laravel/encrypt解密用戶tabel
- 30. opencart 1.5.1.3 encrypt()paypal pro iframe
如果它是一個私人工具,你試圖保護文件的人是誰?自己呢? :P – 2010-10-25 18:17:37
哈哈,好問題。只是爲了讓人們不要觸摸他們不應該做的事情。 – 2010-10-25 18:19:43
你能夠使用標準的app.config(或web.config)文件還是必須是單獨的XML文件? – 2010-10-25 18:20:29