度量快速开发平台-专业、快速的软件定制快开平台
标题:
自定义Base16解码原理
[打印本页]
作者:
Adam丶鱼
时间:
2020-4-10 17:49
标题:
自定义Base16解码原理
/// <summary>
/// 自定义Base16解码
/// </summary>
/// <param name="str">需要解码的字符串</param>
/// <param name="autoCode">自定义Base16编码数组,16个元素,可以为数字、字符、特殊符号,若不填,使用默认的Base16编码数组,解码与编码的Base16编码数组一样</param>
/// <returns></returns>
public static string AutoBase16Decrypt(string str, string[] autoCode)
{
int k = 0;
string dnStr = string.Empty;
int strLength = str.Length;
if (autoCode == null || autoCode.Length < 16)
autoCode = new string[] { "a", "2", "B", "g", "E", "5", "f", "6", "C", "8", "o", "9", "Z", "p", "k", "M" };
byte[] data = new byte[strLength / 2];
for (int i = 0, j = 0; i < data.Length; i++, j++)
{
byte s = 0;
int index1 = autoCode.ToList().IndexOf(str[j].ToString());
j += 1;
int index2 = autoCode.ToList().IndexOf(str[j].ToString());
s = (byte)(s ^ index1);
s = (byte)(s << 4);
s = (byte)(s ^ index2);
data[k] = s;
k++;
}
dnStr = Encoding.Default.GetString(data);
return dnStr;
}
作者:
Adam丶鱼
时间:
2020-4-10 17:50
作者:
张兴康
时间:
2020-4-13 15:56
作者:
Adam丶鱼
时间:
2020-4-13 17:26
张兴康 发表于 2017-11-13 15:56
欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://plat.delit.cn/)
Powered by Discuz! X3.2