C#简单生成随机密码的方法示例

本文实例讲述了C#简单生成随机密码的方法。分享给大家供大家参考,具体如下:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Windows.Forms;
public partial class _Default : System.Web.UI.Page
{
  public static int counter = 0;
  protected void Page_Load(object sender, EventArgs e)
  {
  }
  public static string MakePassword(string pwdchars, int pwdlen)
  {
    //判斷隨機密碼的長度
    string tmpstr = "";
    int iRandNum;
    if (pwdlen > pwdchars.Length)
    {
      return "长度过长!" + pwdchars.Length;
    }
    Random rnd = new Random();
    for (int i = 0; i < pwdlen; i++)
    {
      iRandNum = rnd.Next(pwdchars.Length);
      tmpstr += pwdchars[iRandNum];
    }
    return tmpstr;
  }
  protected void Button1_Click(object sender, EventArgs e)
  {
    int t1 = Convert.ToInt32(TextBox1.Text);
    if (t1 < 10 || t1 > 20 || t1 < 0)
    {
      MessageBox.Show("指定密碼失敗!");
    }//判斷指定的密碼長度是否符合
    else
    {
      string randomchars = "abcdefghijklmnopqrstuvwxyz~!@#$%^&*()_+|0123456789~!@#$%^&*()_+|ABCDEFGHIJKLMNOPQRSTUVWXYZ~!@#$%^&*()_+|";
      string password = MakePassword(randomchars, Convert.ToInt32(TextBox1.Text));
      TextBox2.Text = password;
    }//產生隨機的密碼值
  }//判斷輸入的密碼是否符合隨機產生的密碼
  protected void Button2_Click(object sender, EventArgs e)
  {
    if (TextBox3.Text.Trim()==TextBox2.Text.Trim())
    {
      MessageBox.Show("成功!");
      Response.Write("您現在的密碼是:"+"<font color=red>"+TextBox3.Text+"</font>");
    }
    else
    {
      MessageBox.Show("失败!");
    }
  }
  protected void TextBox1_TextChanged(object sender, EventArgs e)
  {
  }
}

HTML代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
  <title>无标题页</title>
</head>
<body bgcolor="#66ffcc">
  <form id="form1" runat="server" >
  <div>
         <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <table bgcolor=SpringGreen>
      <tr>
        <td width="100px">
    <asp:Label ID="Label1" runat="server" Text="指定密码长度(10~20之間)" Width="129px"></asp:Label></td>
        <td width="159px">
    <asp:TextBox ID="TextBox1" runat="server" Width="39px" OnTextChanged="TextBox1_TextChanged">10</asp:TextBox>
    <asp:TextBox ID="TextBox2" runat="server" Width="195px" ReadOnly="true"></asp:TextBox></td>
        <td width="103px">
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="產生密碼" /></td>
        <td width="100px">
        </td>
      </tr>
      <tr>
        <td width="100px">
    <asp:Label ID="Label2" runat="server" Text="输入产生的密码"></asp:Label></td>
        <td width="159px">
          <asp:TextBox ID="TextBox3" runat="server" Width="261px" TextMode="Password"></asp:TextBox></td>
        <td width="103px">
    <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="验证" /></td>
        <td width="100px">
        </td>
      </tr>
    </table>
    <br />
    <br />
    <br />
    </div>
  </form>
</body>
</html>

PS:这里再为大家提供两款功能类似的在线工具供大家参考:

在线随机数字/字符串生成工具:
http://tools.jb51.net/aideddesign/suijishu

高强度密码生成器:
http://tools.jb51.net/password/CreateStrongPassword

更多关于C#相关内容还可查看本站专题:《C#字符串操作技巧总结》、《C#数据结构与算法教程》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#程序设计之线程使用技巧总结》、《C#数组操作技巧总结》及《C#面向对象程序设计入门教程》

希望本文所述对大家C#程序设计有所帮助。

(0)

相关推荐

  • 用C#生成不重复的随机数的代码

    对于随机数,大家都知道,计算机不 可能产生完全随机的数字,所谓的随机数发生器都是通过一定的算法对事先选定的随机种子做复杂的运算,用产生的结果来近似的模拟完全随机数,这种随机数被称 作伪随机数.伪随机数是以相同的概率从一组有限的数字中选取的.所选数字并不具有完全的随机性,但是从实用的角度而言,其随机程度已足够了.伪随机数的选 择是从随机种子开始的,所以为了保证每次得到的伪随机数都足够地"随机",随机种子的选择就显得非常重要.如果随机种子一样,那么同一个随机数发生器产生 的随机数也会一样.

  • C# 批量生成随机密码必须包含数字和字母并用加密算法加密

    要求: 密码必须包含数字和字母 思路: 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 = "0123456789ABCDEFGHIJKLMNOPQRS

  • C# Guid.NewGuid获得随机数

    复制代码 代码如下: static int GetRandomNumber(int min, int max)        {            int rtn = 0; Random r = new Random(); byte[] buffer = Guid.NewGuid().ToByteArray();            int iSeed = BitConverter.ToInt32(buffer, 0);            r = new Random(iSeed);

  • C#中获取、生成随机数的三种方法

    随机数的定义为:产生的所有数字毫无关系. 在实际应用中很多地方会用到随机数,比如需要生成唯一的订单号. 在C#中获取随机数有三种方法: 一.Random 类 Random类默认的无参构造函数可以根据当前系统时钟为种子,进行一系列算法得出要求范围内的伪随机数. 复制代码 代码如下: Random rd = new Random(); int i = rd.Next(); 这种随机数可以达到一些要求较低的目标,但是如果在高并发的情况下,Random类所取到的系统时钟种子接近甚至完全一样,就很有可能出

  • C#生成随机字符串的实例

    复制代码 代码如下: /// <summary>   /// 生成随机字符串   /// </summary>   private class RandomStringGenerator   {       static readonly Random r = new Random();       const string _chars = "0123456789";       public static string GetRandomString() 

  • C#生成互不相同随机数的实现方法

    本文实例讲述了C#生成互不相同随机数的实现方法,在进行C#应用程序设计时非常具有实用价值.本文详细讲述了其功能的实现过程.分享给大家供大家参考之用.具体方法如下: 一般来说,用C#生成足够随机的互不相同的随机数 Dotnet.Frameword中提供了一个专门产生随机数的类System.Random,计算机并不能产生完全随机的数字,它生成的数字被称为伪随机数,它是以相同的概率从一组有限的数字中选取的,所选的数字并不具有完全的随机性,但就实用而言,其随机程度已经足够了. 在使用随机数时,要先初始化

  • c#循环中产生伪随机数

    这种结果的原因在于,Random()函数的默认种子是时间,但在循环中产生随机数时,由于运算速度太快,用做种子的时间是相同的(毫秒级),因此产生的随机数序列是相同的,这样最终的随机数就会相同.(基于"线性同余法"的随机数发生器) 解决方法是,产生一个全局唯一标识符,使用它的哈希值来做种子产生随机数.代码如下: 复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System

  • C#生成指定范围内的不重复随机数

    C#生成指定范围内的不重复随机数 // Number随机数个数 // minNum随机数下限 // maxNum随机数上限 public int[] GetRandomArray(int Number,int minNum,int maxNum) { int j; int[] b=new int[Number]; Random r=new Random(); for(j=0;j<Number;j++) { int i=r.Next(minNum,maxNum+1); int num=0; for

  • C#随机生成不重复字符串的两个不错方法

    今天整理以前一个项目源码,发现两个随机生成不重复字符串的方法,觉得用起来挺方便的,在此贴出来,方便以后查阅. 方法一:随机生成不重复数字字符串 复制代码 代码如下: private int rep=0; /// <summary> /// 生成随机数字字符串 /// </summary> /// <param name="codeCount">待生成的位数</param> /// <returns>生成的数字字符串</r

  • C# 生成验证码取随机数字加字母(改进版)

    之前一直用的生成验证码方法,取4位数字没有问题,结果加上字母,取6位后,效率非常低. 改进了一下,方法如下 复制代码 代码如下: var text2 = ""; var random = new Random((int)DateTime.Now.Ticks); const string textArray = "23456789ABCDEFGHGKLMNPQRSTUVWXYZ"; for (var i = 0; i < iVcodeNum; i++) { te

  • C#生成不重复随机字符串类

    本文实例讲述了C#生成不重复随机字符串类.分享给大家供大家参考.具体如下: 这个C#类用于随机产生不重复的字符串,可以指定字符串范围,可以指定要产生字符串的长度 using System; namespace DotNet.Utilities { public class RandomOperate { // 一:随机生成不重复数字字符串 private int rep = 0; public string GenerateCheckCodeNum(int codeCount) { string

随机推荐