1. 程式人生 > >C# 簡單的異或加密文字檔案或字串

C# 簡單的異或加密文字檔案或字串

一、加解密字串

1、加密方法:將原字串與加密字元進行異或

 1 private char[] Encrypt(string content, string secretKey)
 2 {
 3     char[] data = content.ToCharArray();
 4     char[] key = secretKey.ToCharArray();
 5     for (int i = 0; i < data.Length; i++)
 6     {
 7         data[i] ^= key[i % key.Length];
 8     }
 9 
10
return data; 11 }

2、解密方法:將加密後的字元陣列與加密字元進行異或

 1 private string Decrypt(char[] data, string secretKey)
 2 {
 3     char[] key = secretKey.ToCharArray();
 4 
 5     for (int i = 0; i < data.Length; i++)
 6     {
 7         data[i] ^= key[i % key.Length];
 8     }
 9 
10     return new string
(data); 11 }

二、加解密文字檔案

1、獲得文字檔案中的字串

 

1 string filePath = Directory.GetCurrentDirectory();
2 filePath = filePath + "\\test.txt";                  //得到路徑
3 string str = File.ReadAllText(filePath, Encoding.Default);

 

2、加密文字並儲存 

1 char[] data = Encrypt(str,"123");      //將"123"作為金鑰
2 string afterEncrypt = new string(data); 3 File.WriteAllText(filePath, afterEncrypt); //加密後的字串寫入檔案

3、讀取文字並解密

1 string str1 = File.ReadAllText(filePath, Encoding.Default);
2 char[] data1 = str.ToCharArray();   
3 str1 = TextDecrypt(data1, "123");    //解密 str1為解密後的文字