生成10位的永不重复的字母加数字
各位算法高手,公司有个需求算法小白我实在想不出来,求教。
需求是生成10位的永不重复的字母加数字,不能有特殊字符。
我的思路是用guid生成唯一code,通过md5(16)算出,然后GetHashCode(),之后用固定的字母数字对照表(比如1->A,2->D),生成一段10位的字母加数字。
问题在于GetHashCode返回的数据是不固定长度的,有9位有10,也就是我生成的长度不统一了。
各位有没有更好的办法啊?
其实要求就是每次生成的string必须是唯一的10位字符串,我不知道有什么好的算法,我自己的这种做法很傻,请各位指教。
取md5结果的前10能否永不重复?
用了guid 作为种子
现在就要解决,怎么把guid变成一个10位的数字加字母。
private string getStr()
{
string s = GetMd5Str(Guid.NewGuid().ToString());
return Math.Abs(s.GetHashCode()).ToString();
}
/// <summary>
/// MD5 16位加密
/// </summary>
/// <param name="ConvertString"></param>
/// <returns></returns>
private string GetMd5Str(string ConvertString)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
string t2 = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(ConvertString)), 4, 8);
t2 = t2.Replace("-", "");
return t2;
}
需求是生成10位的永不重复的字母加数字,不能有特殊字符。
我的思路是用guid生成唯一code,通过md5(16)算出,然后GetHashCode(),之后用固定的字母数字对照表(比如1->A,2->D),生成一段10位的字母加数字。
问题在于GetHashCode返回的数据是不固定长度的,有9位有10,也就是我生成的长度不统一了。
各位有没有更好的办法啊?
其实要求就是每次生成的string必须是唯一的10位字符串,我不知道有什么好的算法,我自己的这种做法很傻,请各位指教。
取md5结果的前10能否永不重复?
用了guid 作为种子
现在就要解决,怎么把guid变成一个10位的数字加字母。
private string getStr()
{
string s = GetMd5Str(Guid.NewGuid().ToString());
return Math.Abs(s.GetHashCode()).ToString();
}
/// <summary>
/// MD5 16位加密
/// </summary>
/// <param name="ConvertString"></param>
/// <returns></returns>
private string GetMd5Str(string ConvertString)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
string t2 = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(ConvertString)), 4, 8);
t2 = t2.Replace("-", "");
return t2;
}
...全文
相关推荐
C#生成不重复字母数字组合的随机数
包含C#源码 关于C#中随机数生成器 生成不重复子字母组合的随机数 并保存成TXT
Java实现生成永不重复的数字方案详解
在上一期的文章中,我们深入探讨了如何通过Java 反射机制来创建静态和非静态内部类,解决了动态类实例化中的一些常见难题。通过反射的灵活操作,我们能够在运行时动态生成对象并调用它们的相关方法,极大地提升了程序的扩展性与灵活性。然而,在现代应用开发中,另一个常见的需求是生成永不重复的数字。无论是在订单系统中生成唯一订单号,还是分布式系统中生成唯一标识,生成不重复的数字或ID都是至关重要的。本期我们将关注Java 生产永不重复的数字。
随机生成10位数包含字母和数字
随机生成10位随机排列 的字符串,包含字母和数字的随机排列
python无限生成不重复(字母,数字,字符)组合的方法
今天小编就为大家分享一篇python无限生成不重复(字母,数字,字符)组合的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
C#生成2位或N位不重复字母数字组合
C#生成2位或N位不重复字母数字组合,位数可自己设置调整


