F/Base/Rand.cs

(开头部分) 6KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace F.Base
{
    /// <summary>
    /// 随机函数
    /// </summary>
    public class Rand
    {
        #region 内部函数
        /// <summary>
        /// 为了防止随机数重复
        /// </summary>
        /// <returns></returns>
        private static int GetRandomSeed()
        {
            byte[] bytes = new byte[4];
            System.Security.Cryptography.RNGCryptoServiceProvider rng = new System.Security.Cryptography.RNGCryptoServiceProvider();
            rng.GetBytes(bytes);
            return BitConverter.ToInt32(bytes, 0);
        }
        #endregion


        /// <summary>
        /// 生成唯一标识
        /// </summary>
        /// <param name="i">
        /// (1):返回【当前时间】的 yyyyMMddHHmmssffff 加 4位0-9随机数  = 21位唯一数字字符,
        /// (2):Guid.NewGuid(),全局绝对唯一标识,极小几率重复
        /// (3):(长度80位)永久性唯一,16进制,采用Guid.NewGuid()+DES加密,密钥为:当前时间+4位在(0.00001毫秒内上下不重复)的随机数
        /// </param>
        /// <returns></returns>
        public static string TimeId(int i)
        {
            if (i == 1)
            {
                string km = DateTime.Now.ToString("yyyyMMddHHmmssffff");
                km += GetRandomCode(4, "0,1,2,3,4,5,6,7,8,9");
                return km;
            }
            else if (i == 2)
            {
                return Guid.NewGuid().ToString();
            }
            else
            {
                string key = DateTime.Now.ToString("yyyyMMddHHmmssffff") + Str(4);
                string str = key.FAES(1, "", Guid.NewGuid().ToString());
                return str.ToUpper().Replace("_", "").Replace("*", "").Replace("%", "");
            }
            
        }

        /// <summary>
        /// 生成随机数字
后面还有 98 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。