您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關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#中如何生成一個每小時變化一次的用戶名”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。