/// <summary>
/// 自定义Base16编码
/// </summary>
/// <param name="str">需要编码的字符串</param>
/// <param name="autoCode">自定义Base16编码数组,16个元素,可以为数字、字符、特殊符号,若不填,使用默认的Base16编码数组,解码与编码的Base16编码数组一样</param>
/// <returns></returns>
public static string AutoBase16Encrypt(string str, string[] autoCode)
{
string innerStr = string.Empty;
StringBuilder strEn = new StringBuilder();
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" };
System.Collections.ArrayList arr = new System.Collections.ArrayList(System.Text.Encoding.Default.GetBytes(str));
for (int i = 0; i < arr.Count; i++)
{
byte data = (byte)arr[i];
int v1 = data >> 4;
strEn.Append(autoCode[v1]);
int v2 = ((data & 0x0f) << 4) >> 4;
strEn.Append(autoCode[v2]);
}
return strEn.ToString();
}
/// <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;
}
/// <summary>
/// 随机编码数组
/// </summary>
/// <returns></returns>
public string[] RandomEncrypt()
{
string[] code = new string[16];
Random random = new Random();
int j = 0;
for (int i = 0; 1 < 2; i++)
{
char ch = (char)random.Next(1, 128);
if (code.ToList().IndexOf(ch.ToString()) < 0 && (( ch >= '0' && ch <= '9')
|| (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')))
{
code[j] = ch.ToString();
j++;
}
if (!Array.Exists(code, string.IsNullOrEmpty) && code.Length == 16)
break;
}
return code;
}
MatchCollection mc = Regex.Matches(retrunValue.ToString(), "[A-F0-9]{2}");
byte[] bytes = new byte[mc.Count];
for (int i = 0; i < mc.Count; i++)
{
bytes[i] = byte.Parse(mc[i].Value, System.Globalization.NumberStyles.HexNumber);
}
retrunValue = Convert.ToBase64String(bytes);
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有