12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Ant.Core.Utils
- {
- public class IdGenerator
- {
- #region Fields
- private static readonly string digits = "0123456789abcdefghijklmnopqrstuvwxyz";
- private static readonly char[] characters = digits.ToCharArray();
- private static Random random = new Random();
- private static readonly long startTicks = new DateTime(2017, 1, 1).Ticks;
- #endregion Fields
- /// <summary>
- /// Generate a short id
- /// </summary>
- /// <returns></returns>
- public static string NewId()
- {
- long current = DateTime.Now.Ticks - startTicks;
- string strRadix = ConvertToRadix(current, characters.Length);
- StringBuilder sb = new StringBuilder(strRadix);
- for (int i = 0; i < 6; i++)
- {
- sb.Append(characters[random.Next(characters.Length)]);
- }
- return sb.ToString().ToUpper();
- }
- public static string NewId(string prefix)
- {
- return $"{prefix}{NewId()}";
- }
- public static Guid NewGUId()
- {
- return Guid.NewGuid();
- }
- public static string NewUUId()
- {
- return Guid.NewGuid().ToString("N");
- }
- /// <summary>
- /// 生成Token
- /// </summary>
- /// <returns></returns>
- public static string AntToken()
- {
- return NewUUId().Replace("-", "").ToUpper();
- }
- private static string ConvertToRadix(long value, int radix)
- {
- StringBuilder sb = new StringBuilder();
- while (value > 0)
- {
- sb.Insert(0, characters[value % radix]);
- value /= radix;
- }
- return sb.ToString();
- }
- }
- }
|