C#根据用户ID生成6位专属推广码及根据推广码反编译出来用户ID

C#根据用户ID生成6位专属推广码及根据推广码反编译出来用户ID

根据用户ID生成专属推广码

#region 生成六位推广码
private static string source_string = "2YU9P6ASDFG8QWERTHJ7KLZX4CV5B3ONM";
/// <summary> 根据用户ID生成专属推广码
/// </summary>
/// <param name="Id">UserID</param>
/// <returns>用户六位推广码</returns>
public static string CreateCode(int Id)
{
string code = "";
int mod = 0;
StringBuilder sb = new StringBuilder();
while (Id > 0)
{
mod = Id % source_string.Length;
Id = (Id - mod) / source_string.Length;
code = source_string.ToCharArray()[mod] + code;
}
return code.PadRight(6, '0');//不足六位补0
}
/// <summary>通过推广码反编译出来用户ID
/// </summary>
/// <param name="code">专属推广码</param>
/// <returns>UserID</returns>
public static int CodeToId(string code)
{
code = new string((from s in code where s != '0' select s).ToArray());
int num = 0;
for (int i = 0; i < code.ToCharArray().Length; i++)
{
for (int j = 0; j < source_string.ToCharArray().Length; j++)
{
if (code.ToCharArray()[i] == source_string.ToCharArray()[j])
{
num += j * Convert.ToInt32(Math.Pow(source_string.Length, code.ToCharArray().Length - i - 1));
}
}
}
return num;

}
#endregion

本文由 魏代群个人博客 作者:weidaiqun 发表,其版权均为 魏代群个人博客 所有,文章内容系作者个人观点,不代表 魏代群个人博客 对观点赞同或支持。如需转载,请注明文章来源。
1

发表评论