千家信息网

c#中如何生成一个每小时变化一次的用户名

发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,这篇文章将为大家详细讲解有关c#中如何生成一个每小时变化一次的用户名,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在做一个ASP.NET的项目,想留一个超级管理员的
千家信息网最后更新 2024年11月18日c#中如何生成一个每小时变化一次的用户名

这篇文章将为大家详细讲解有关c#中如何生成一个每小时变化一次的用户名,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

在做一个ASP.NET的项目,想留一个超级管理员的账号。

如果这个超级管理员的用户名是固定的(例如administrator),这样会不安全;所以想用下面的这种方式生成一个长字符串的用户名,而且每小时变化一次。

用户名的组成:年+SuperAdmin+总天数+小时à进行MD5加密。因此,用户名每个小时都会变化。

using System;using System.Text;using System.Security.Cryptography;namespace CKI.JsonServer.Models{    public class SuperAdministratorHelper    {        public static string GetName()        {            int year = DateTime.Now.Year;            int month = DateTime.Now.Month;            int day = DateTime.Now.Day;            int hour = DateTime.Now.Hour;            int SumDays = GetDayOfYear(month) + day;            if (month > 2)            {                if ((year % 4 == 0) && (year % 100 != 0) || year % 400 == 0)                {                     SumDays++;                 }            }             string sa = year + "SuperAdmin" + SumDays.ToString("#000") + hour.ToString("#00");            return MD5(sa);        }        public static string MD5(string str)        {            byte[] result = Encoding.Default.GetBytes(str);            MD5 md5 = new MD5CryptoServiceProvider();            byte[] output = md5.ComputeHash(result);            string strMD5 = BitConverter.ToString(output).Replace("-", "");            return strMD5;        }        private static int GetDayOfYear(int month/*取值范围:1至12*/)        {            int SumDays = 0;            if (month <= 0) return SumDays;            switch (month - 1)            {                case 11: SumDays += 30; break;                case 10: SumDays += 31; break;                case 9: SumDays += 30; break;                case 8: SumDays += 31; break;                case 7: SumDays += 31; break;                case 6: SumDays += 30; break;                case 5: SumDays += 31; break;                case 4: SumDays += 30; break;                case 3: SumDays += 31; break;                case 2: SumDays += 28; break;                case 1: SumDays += 31; break;                default: break;            }            SumDays += GetDayOfYear(month - 1);            return SumDays;        }    }}

关于"c#中如何生成一个每小时变化一次的用户名"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

0