主要解决的就是Url编码, json编码之类的各种转义方法互相不兼容, base64也有特殊符号, 所以搞了个彻底不会带特殊符号的...
/// <summary>
/// 解密
/// </summary>
/// <param name="str"></param>
/// <param name="encoding"></param>
/// <returns></returns>
public static string Decrypt(string str, Encoding encoding = null)
{
if (encoding == null)
encoding = Encoding.Default;
if (str.IsEmpty())
return null;
int num = (int)Math.Round((double)(((double)str.Length) / 2));
byte[] buffer = new byte[(num - 1) + 1];
int num3 = num - 1;
for (int i = 0; i <= num3; i++)
{
string s = str.Substring(i * 2, 2);
buffer[i] = (byte)int.Parse(s, NumberStyles.HexNumber);
}
return encoding.GetString(buffer);
}
/// <summary>
/// 加密
/// </summary>
/// <param name="str"></param>
/// <param name="encoding"></param>
/// <returns></returns>
public static string Encrypt(string str, Encoding encoding = null)
{
if (encoding == null)
encoding = Encoding.Default;
if (str.IsEmpty())
return null;
var bytes = encoding.GetBytes(str);
StringBuilder builder = new StringBuilder();
int num2 = bytes.Length - 1;
for (int i = 0; i <= num2; i++)
{
builder.AppendFormat("{0:X2}", bytes[i]);
}
return builder.ToString();
}