C# 随机密码生成
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C# 随机密码生成,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3174字,纯文字阅读大概需要5分钟。
内容图文
![C# 随机密码生成](/upload/InfoBanner/zyjiaocheng/623/b51db991baf74d9091de140e29cd1456.jpg)
前言
效果浏览
? 文末有Demo下载连接。
思路:
该小程序使用WPF写的,布局简单就不贴出来了
代码
#region - 生成模式 -
/*
* 1、选择长度
* 密码长度
* 2、选用模式
* 使用什么组合? 默认 小写+数字 ,可选 大写 特殊字符。
* 3、随机抽取范围
* 给长度每位,使用 [随机范围] 填充 [每位长度]
*/
//1、获取长度
private int Get_PwdLeght()
{
if (cbb_lenght.SelectedIndex <= 4)
{
return Convert.ToInt32(cbb_lenght.SelectedItem.ToString());
}
else if (cbb_lenght.SelectedIndex == 5)
{
try
{
return Int32.Parse(txt_selfDefine_lenght.Text);
}
catch (Exception)
{
MessageBox.Show("请填阿拉伯数字");
return 0;
}
}
else
{
return 0;
}
}
//2、密码模式
private PwdMode Get_PwdMode()
{
if (ckb_Up.IsChecked == false && ckb_Specific.IsChecked == false)
{
return PwdMode.Def;
}
else if (ckb_Up.IsChecked == true && ckb_Specific.IsChecked == false)
{
return PwdMode.Upper;
}
else if (ckb_Up.IsChecked == false && ckb_Specific.IsChecked == true)
{
return PwdMode.SpecialChar;
}
else
{
return PwdMode.UpperandSpecialChar;
}
}
#endregion
#region - 字符处理 -
Random r = new Random();
StringBuilder sb = new StringBuilder();
byte[] buffer = new byte[1];
//特殊字符
List<string> specialChar = new List<string>() {
"~",
"!",
"@",
"#",
"_",
"$",
"."
};
/// <summary>
/// 获取 单个数字
/// </summary>
/// <returns></returns>
private string Get_Num()
{
return r.Next(0, 9).ToString();
}
/// <summary>
/// 获取 单个 小写字母
/// </summary>
/// <returns></returns>
private string Get_LowerCase()
{
sb.Clear();
for (int i = 97; i <= 122; i++)
{
buffer[0] = (byte)(i);
sb.Append(Encoding.ASCII.GetString(buffer));
}
return sb[r.Next(0, sb.Length)].ToString();
}
/// <summary>
/// 获取 单个 大写字母
/// </summary>
/// <returns></returns>
private string Get_UpperCase()
{
sb.Clear();
for (int i = 65; i <= 90; i++)
{
buffer[0] = (byte)(i);
sb.Append(Encoding.ASCII.GetString(buffer));
}
return sb[r.Next(0, sb.Length)].ToString();
}
/// <summary>
/// 获取 单个 特殊字符
/// </summary>
/// <returns></returns>
private string Get_SpecialChar()
{
return specialChar[r.Next(0, specialChar.Count - 1)];
}
/// <summary>
/// 字符处理 释放资源
/// </summary>
private void Character_Release()
{
if (sb != null)
{
sb.Clear();
sb = null;
}
if (buffer != null)
buffer = null;
if (r != null)
r = null;
}
#endregion
StringBuilder sb2 = new StringBuilder();
private void btn_create_Click(object sender, RoutedEventArgs e)
{
sb2.Clear();
int temp = 0;
for (int i = 0; i < Get_PwdLeght(); i++)
{
if (Get_PwdMode() == PwdMode.Def)
{
temp = r.Next(0, 2);
if (temp == 0)
sb2.Append(Get_Num());
else
sb2.Append(Get_LowerCase());
}
else if (Get_PwdMode() == PwdMode.Upper)
{
temp = r.Next(0, 3);
if (temp == 0)
sb2.Append(Get_Num());
else if (temp == 1)
sb2.Append(Get_LowerCase());
else
sb2.Append(Get_UpperCase());
}
else if (Get_PwdMode() == PwdMode.SpecialChar)
{
temp = r.Next(0, 3);
if (temp == 0)
sb2.Append(Get_Num());
else if (temp == 1)
sb2.Append(Get_LowerCase());
else
sb2.Append(Get_SpecialChar());
}
else if (Get_PwdMode() == PwdMode.UpperandSpecialChar)
{
temp = r.Next(0, 4);
if (temp == 0)
sb2.Append(Get_Num());
else if (temp == 1)
sb2.Append(Get_LowerCase());
else if (temp == 2)
sb2.Append(Get_UpperCase());
else
sb2.Append(Get_SpecialChar());
}
}
this.Dispatcher.Invoke(() =>
this.txt_results.Text = sb2.ToString()
);
}
完整Demo下载
下载地址:https://xxing9199.lanzous.com/isPrji1f0dc
内容总结
以上是互联网集市为您收集整理的C# 随机密码生成全部内容,希望文章能够帮你解决C# 随机密码生成所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。