C# 随机生成字符串

2019年4月18日11:31:01 5 785

C# 随机生成字符串

简介

最近在搞阿里云短信接口,发送验证码和短信动态密码登录,就使用到了生成随机数和随机密码了,但是用系统自带的Random,感觉不是特别好,所以就简单封装了一下方法。可以根据自己的需要生成位数,方便使用,有需要的可以试试我的代码。

代码展示

  1. #region生成字符随机或数字随机数作为验证码
  2. private int rep = 0;
  3. /// <summary>
  4. /// 生成随机数字字符串
  5. /// </summary>
  6. /// <param name="codeCount">待生成的位数</param>
  7. /// <returns>生成的数字字符串</returns>
  8. private string GenerateCheckCodeNum(int codeCount) {
  9.     string str = string.Empty;
  10.     long num2 = DateTime.Now.Ticks + this.rep;
  11.     this.rep++;
  12.     Random random = new Random(((int)(((ulong) num2) & 0xffffffffL)) | ((int)(num2 >> this.rep)));
  13.     for (int i = 0; i < codeCount; i++) {
  14.         int num = random.Next();
  15.         str = str + ((char)(0x30 + ((ushort)(num % 10)))).ToString();
  16.     }
  17.     return str;
  18. }
  19. /// <summary>
  20. /// 生成随机字母字符串(数字字母混和)
  21. /// </summary>
  22. /// <param name="codeCount">待生成的位数</param>
  23. /// <returns>生成的字母字符串</returns>
  24. private string GenerateCheckCode(int codeCount) {
  25.     string str = string.Empty;
  26.     long num2 = DateTime.Now.Ticks + this.rep;
  27.     this.rep++;
  28.     Random random = new Random(((int)(((ulong) num2) & 0xffffffffL)) | ((int)(num2 >> this.rep)));
  29.     for (int i = 0; i < codeCount; i++) {
  30.         char ch;
  31.         int num = random.Next();
  32.         if ((num % 2) == 0) {
  33.             ch = (char)(0x30 + ((ushort)(num % 10)));
  34.         } else {
  35.             ch = (char)(0x41 + ((ushort)(num % 0x1a)));
  36.         }
  37.         str = str + ch.ToString();
  38.     }
  39.     return str;
  40. }
  41. #endregion
weinxin
微信公众号
博客微信公众号,欢迎关注。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:5   其中:访客  3   博主  2

    • avatar 热血学霸 0

      好文章,感谢大佬分享

      • avatar nice 4

        所以我没有看懂…

          • avatar 萧瑟 博主

            @nice 简单的一个随机数生成类代码,不是特别难理解的。 :mrgreen: :mrgreen:

          • avatar wordpress建站吧 1

            看不懂c

              • avatar 萧瑟 博主

                @wordpress建站吧 不,这不是C,而是简单的C#,比C简单多了。