C#随机密码生成器
发布时间:2020-12-15 18:25:06 所属栏目:百科 来源:网络整理
导读:这是代码:(passwordLengthBox是NumericUpDown Box,r和k是随机数) private void generateButton_Click(object sender,EventArgs e) { int r,k; int passwordLength = (Int32)passwordLengthBox.Value; string password = ""; char[] upperCase = { 'A','B','
这是代码:(passwordLengthBox是NumericUpDown Box,r和k是随机数)
private void generateButton_Click(object sender,EventArgs e) { int r,k; int passwordLength = (Int32)passwordLengthBox.Value; string password = ""; char[] upperCase = { 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z' }; char[] lowerCase = { 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z' }; int[] numbers = { '0','1','2','3','4','5','6','7','8','9' }; Random rRandom = new Random(); for (int i = 0; i < passwordLength; i++) { r = rRandom.Next(3); if (r == 0) { k = rRandom.Next(0,25); password += upperCase[k]; } else if (r == 1) { k = rRandom.Next(0,25); password += lowerCase[k]; } else if (r == 2) { k = rRandom.Next(0,9); password += numbers[k]; } } textBox.Text = password; } 这个程序的作用是创建一个随机密码,包括字母(大写和小写)和我选择的长度的数字. 例如:如果我在NumericUpDown Box(passwordLengthBox)中键入5,设置密码长度,有时它会给我5个字符长的密码,有时6/7/8个字符长密码. 我的错是什么? 解决方法
问题在这里:
int[] numbers = { '0','9' }; 使用该声明,每次将一个数字附加到密码中时,它将被视为ASCII编号,而不是实际值.所以你要添加48到57之间的整数,结果字符串会比预期更长. 例如当6作为随机数生成时,你将类似的东西:((int)’6′).ToString()附加到你的密码变量中,实际上增加了54而不是6. 将该数组声明为char [],它将正常工作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |