要求:密码必须包含数字和字母

思路:1.列出数字和字符。 组成字符串 :chars

2.利用randrom.Next(int i)返回一个小于所指定最大值的非负随机数。

3. 随机取不小于chars长度的随机数a,取字符串chars的第a位字符。

4.循环 8次,得到8位密码

5.循环N次,批量得到密码。

代码实现如下 Main函数:

    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 = ; j < ;j++ )
{
string str = "";
for (int i = ; i < ; i++)
{
str += chars[randrom.Next(chars.Length)];//randrom.Next(int i)返回一个小于所指定最大值的非负随机数
}
if (IsNumber(str))//判断是否全是数字
continue;
if (IsLetter(str))//判断是否全是字母
continue;
File.AppendAllText(path1, str);
string pws = Md5(str,);//MD5加密
File.AppendAllText(path1, "," + pws + "\r\n");
}
Console.WriteLine("ok");
Console.Read();
}

巧用String.trim 函数,判断是否全是数字,全是字母。

说明:string.trim   从 String 对象移除前导空白字符和尾随空白字符。

返回:一个字符串副本,其中从该字符串的开头和末尾移除了所有空白字符。

有一个重载:string.Trim(params char[] trimChars)   

//从当前System.string对象移除数组中指定的一组字符的所有前导匹配项和尾部匹配项

 trimChars:要删除的字符数组

方法实现如下代码:

        //判断是否全是数字
static bool IsNumber(string str)
{
if (str.Trim("".ToCharArray()) == "")
return true;
return false;
}
//判断是否全是字母
static bool IsLetter(string str)
{
if (str.Trim("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".ToCharArray()) == "")
return true;
return false;
}

 用MD5加密,算法代码实现如下:

        /// <summary>
/// MD5加密
/// </summary>
/// <param name="str">加密字元</param>
/// <param name="code">加密位数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 = ; i < targetData.Length; i++)
{
strEncrypt += targetData[i].ToString("X2");
}
if (code == )
{
strEncrypt = strEncrypt.Substring(, );
}
return strEncrypt;
}

生成批量密码,和加密后的密码如下图:

版权声明:本文为博主原创文章,转载请注明出处。http://www.cnblogs.com/SweetMemory/p/6297138.html

C# 批量生成随机密码,必须包含数字和字母,并用加密算法加密的更多相关文章

  1. python3-随机生成10位包含数字和字母的密码

    方法一: 知识点:random.sample(sequence, k) 从指定序列中随机获取指定长度的片断 import random,string num=string.ascii_letters+ ...

  2. .net 反射访问私有变量和私有方法 如何创建C# Closure ? C# 批量生成随机密码,必须包含数字和字母,并用加密算法加密 C#中的foreach和yield 数组为什么可以使用linq查询 C#中的 具名参数 和 可选参数 显示实现接口 异步CTP(Async CTP)为什么那样工作? C#多线程基础,适合新手了解 C#加快Bitmap的访问速度 C#实现对图片文件的压

    以下为本次实践代码: using System; using System.Collections.Generic; using System.ComponentModel; using System ...

  3. 随机生成N个字符(包含数字和字母)

    '************************************************************* ' Name: GetRandomString ' Purpose: 随机 ...

  4. QTP_随机生成N个字符(包含数字和字母)

    '************************************************************* ' Name: GetRandomString ' Purpose: 随机 ...

  5. python 查找字符串同时包含数字和字母的最长子字符串的几种实现方法

    有个字符串$sd1#111$svda123!!!221&eSSDSDG,包含特殊字符.数字和字母,输出最长的子字符串和他的长度 例如上面的字符串同时包含数字和字母的字符串是svda123,长度 ...

  6. JS 用正则表达式,验证密码包含数字和字母的方法

    必须包含至少一位数字和一位字母,脚本方法如下: function CheckPassWord(password) {//密码必须包含数字和字母 var str = password; if (str ...

  7. Python求包含数字或字母最长的字符串及长度

    一.求包含数字或字母最长的字符串及长度 org = 'ss121*2222&sdfs2!aaabb' result = [] #保存最终要输出的字符串 result_temp = [] #保存 ...

  8. PHP中生成随机字符串,数字+大小写字母随机组合

    简单的生成随机字符串: /* * 生成随机字符串 * * $length 字符串长度 */ function random_str($length) { // 密码字符集,可任意添加你需要的字符 $c ...

  9. 记一次拿webshell踩过的坑(如何用PHP编写一个不包含数字和字母的后门)

    0x01 前言 最近在做代码审计的工作中遇到了一个难题,题目描述如下: <?php include 'flag.php'; if(isset($_GET['code'])){ $code = $ ...

随机推荐

  1. c# 如何筛选datatable

    对DataTable数据各种筛选 筛选一个DataTable的数据,赋值给另外一个DataTable 假设: 有2个DataTable:DataTable A.DataTable B. 要求: 筛选D ...

  2. GitHub团队协作流程

    说来惭愧,这么长时间,第一次参与修改开源项目,所以整理了一份GitHub团队协作流程,作为备忘,文章大部分内容参考https://www.cnblogs.com/schaepher/p/4933873 ...

  3. kubernetes 1.3管中窥豹- RS(Replica Sets):the next-generation Replication Controller

    前言 kubernates 1.3出了几个新的概念,其中包括deployments,Replica Sets,并且官网称之为是the next-generation Replication Contr ...

  4. [Algorithm]查找

    一.查找的算法 1.顺序查找 1 int Search_Seq( SeqList L, ElemType elem ) 2 { 3 L.elem[0] = elem; 4 for ( int i = ...

  5. Hibernate学习第4天--HQL——QBC查询详解,抓取策略优化。

    上次课回顾: l  Hibernate的一对多 n  表与表之间关系 u  一对多关系 u  多对多关系 u  一对一关系 n  Hibernate的一对多配置 u  搭建Hibernate基本环境 ...

  6. iOS 开发技术体系

    iOS 开发技术体系图: - 层级 | 主要框架 - ---------------------|--------------------------------------------------- ...

  7. 整理LVS架构压力测试工作

    首先,测试环境在模拟环境下进行.     测试环境:1director(apache2.2) + 1realserver(jboss4.2.3GA)+1databaseserver(oracle9i) ...

  8. 本地localhost:端口号(自己设置的Apache的端口号)打不开问题解决了!开心、哭泣

    想不来自己有多蠢!历经4个月再没学,刚开始xampp的端口问题解决不了,系统竟然会自动改回去端口数据(哭晕) 后来一直显示Apache端口80占用,各种百度之后发现单纯浏览器都访问不了localhos ...

  9. JavaWeb学习笔记(九)—— JSTL标签库

    一.JSTL概述 1.1 什么是JSTL  JSTL是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL标签使用以来非常方便,它与JSP动作标签一样,只不过它不是 ...

  10. Python循环流程

    1.for循环 计算1+2+3+……+100的和 count = 0 i = 1 for i in range(101): count+=i print(count) 前n项和公式为:Sn=n*a1+ ...