1.利用二进制数据的XOR(异或)运算进行加/解密。
2.原理:当一个二进制数A和另一个二进制数B进行异或运算会生成另一个二进制数C,如果再将C和B进行异或运算则C又会还原为A
3.程序如下:
using System;
///
///必须要的命名空间
using System.Text;
using System.Security.Cryptography;
public class Encrypt
{
/// <summary>
/// 加密
/// </summary>
/// <param name="str">待加密的明文字符串</param>
/// <param name="key">密钥</param>
/// <returns>加密后的字符串</returns>
public string EncryptString(string str,string key)
{
byte[] bStr=(new UnicodeEncoding()).GetBytes(str);
byte[] bKey=(new UnicodeEncoding()).GetBytes(key);
for(int i=0; i<bStr.Length; i+=2)
{
for(int j=0; j<bKey.Length; j+=2)
{
bStr[i] = Convert.ToByte(bStr[i]^bKey[j]);
}
}
return (new UnicodeEncoding()).GetString(bStr).TrimEnd('/0');
}
/// <summary>
/// 解密
/// </summary>
/// <param name="str">待解密的密文字符串</param>
/// <param name="key">密钥</param>
/// <returns>解密后的明文</returns>
public string DecryptString(string str,string key)
{
return EncryptString(str,key);
}