C# 批量生成隨機(jī)密碼必須包含數(shù)字和字母并用加密算法加密
要求:
密碼必須包含數(shù)字和字母
思路:
1.列出數(shù)字和字符。 組成字符串 :chars
2.利用randrom.Next(int i)返回一個(gè)小于所指定最大值的非負(fù)隨機(jī)數(shù)。
3. 隨機(jī)取不小于chars長(zhǎng)度的隨機(jī)數(shù)a,取字符串chars的第a位字符。
4.循環(huán) 8次,得到8位密碼
5.循環(huán)N次,批量得到密碼。
代碼實(shí)現(xiàn)如下 Main函數(shù):
static void Main(string[] args)
{
string chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
Random randrom = new Random((int)DateTime.Now.Ticks);
string path1 = @"C:\Users\lenovo\Desktop\pws.txt";
for (int j = 0; j < 10000;j++ )
{
string str = "";
for (int i = 0; i < 8; i++)
{
str += chars[randrom.Next(chars.Length)];//randrom.Next(int i)返回一個(gè)小于所指定最大值的非負(fù)隨機(jī)數(shù)
}
if (IsNumber(str))//判斷是否全是數(shù)字
continue;
if (IsLetter(str))//判斷是否全是字母
continue;
File.AppendAllText(path1, str);
string pws = Md5(str,32);//MD5加密
File.AppendAllText(path1, "," + pws + "\r\n");
}
Console.WriteLine("ok");
Console.Read();
}
巧用String.trim 函數(shù),判斷是否全是數(shù)字,全是字母。
說(shuō)明:string.trim 從 String 對(duì)象移除前導(dǎo)空白字符和尾隨空白字符。
返回:一個(gè)字符串副本,其中從該字符串的開(kāi)頭和末尾移除了所有空白字符。
有一個(gè)重載:string.Trim(params char[] trimChars)
//從當(dāng)前System.string對(duì)象移除數(shù)組中指定的一組字符的所有前導(dǎo)匹配項(xiàng)和尾部匹配項(xiàng)
trimChars:要?jiǎng)h除的字符數(shù)組
方法實(shí)現(xiàn)如下代碼:
//判斷是否全是數(shù)字
static bool IsNumber(string str)
{
if (str.Trim("0123456789".ToCharArray()) == "")
return true;
return false;
}
//判斷是否全是字母
static bool IsLetter(string str)
{
if (str.Trim("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".ToCharArray()) == "")
return true;
return false;
}
用MD5加密,算法代碼實(shí)現(xiàn)如下:
/// <summary>
/// MD5加密
/// </summary>
/// <param name="str">加密字元</param>
/// <param name="code">加密位數(shù)16/32</param>
/// <returns></returns>
public static string Md5(string str, int code)
{
string strEncrypt = string.Empty;
MD5 md5 = new MD5CryptoServiceProvider();
byte[] fromData = Encoding.GetEncoding("GB2312").GetBytes(str);
byte[] targetData = md5.ComputeHash(fromData);
for (int i = 0; i < targetData.Length; i++)
{
strEncrypt += targetData[i].ToString("X2");
}
if (code == 16)
{
strEncrypt = strEncrypt.Substring(8, 16);
}
return strEncrypt;
}
生成批量密碼,和加密后的密碼如下圖:

以上所述是小編給大家介紹的C# 批量生成隨機(jī)密碼必須包含數(shù)字和字母并用加密算法加密,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
WPF+SkiaSharp實(shí)現(xiàn)自繪拖曳小球
WPF的拖曳效果,基本配置一下,就可以了,但是自繪的話,就得自己控制。本文將利用WPF+SkiaSharp實(shí)現(xiàn)自繪拖曳小球,感興趣的可以動(dòng)手嘗試一下2022-07-07
基于WPF實(shí)現(xiàn)簡(jiǎn)單的下拉篩選控件
這篇文章主要為大家詳細(xì)介紹了如何基于WPF實(shí)現(xiàn)簡(jiǎn)單的下拉篩選控件,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定幫助,感興趣的小伙伴可以了解一下2023-04-04
Visual Studio 2019 清理空行問(wèn)題(非正則表達(dá)式)
這篇文章主要介紹了Visual Studio 2019 清理空行問(wèn)題(非正則表達(dá)式),本文通過(guò)實(shí)例截圖給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
C# javascript 讀寫(xiě)Cookie的方法
這篇文章介紹了C# javascript 讀寫(xiě)Cookie的方法,有需要的朋友可以參考一下2013-10-10
C#實(shí)現(xiàn)讀寫(xiě)CSV文件的方法詳解
項(xiàng)目中經(jīng)常遇到CSV文件的讀寫(xiě)需求,其中的難點(diǎn)主要是CSV文件的解析。本文會(huì)介紹CsvHelper、TextFieldParser、正則表達(dá)式三種解析CSV文件的方法,需要的可以參考一下2022-06-06
C#程序中session的基本設(shè)置示例及清除session的方法
這篇文章主要介紹了C#程序中session的基本設(shè)置示例及清除session的方法,是C#入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2016-04-04

