溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

c#中如何生成一個每小時變化一次的用戶名

發(fā)布時間:2021-11-23 14:47:14 來源:億速云 閱讀:153 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關c#中如何生成一個每小時變化一次的用戶名,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

在做一個ASP.NET的項目,想留一個超級管理員的賬號。

如果這個超級管理員的用戶名是固定的(例如administrator),這樣會不安全;所以想用下面的這種方式生成一個長字符串的用戶名,而且每小時變化一次。

用戶名的組成:年+SuperAdmin+總天數(shù)+小時à進行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#中如何生成一個每小時變化一次的用戶名”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI