- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何利用C#产生随机密码字符串(国外英语资料)
如何利用C#产生随机密码字符串(国外英语资料)
如何利用c#产生随机密码字符串. txt
使用系统;
使用System.Security.Cryptography;
使用text;
名称空间效用{
公开课PasswordGenerator {
公共PasswordGenerator(){
这一点。最小= DefaultMinimum;
这一点。最大= DefaultMaximum;
这一点。ConsecutiveCharacters = false;
这一点。RepeatCharacters = true;
这一点。ExcludeSymbols = false;
这一点。排除=零;
rng = new RNGCryptoServiceProvider();
}
受保护的int get密码随机数字(int l绑定,int u绑定)
/ /假定lBound = 0 lBound uBound
/ /返回一个int = lBound uBound
使用uint urndnum;
字节rndnum=新字节4;
if(l装订==ubound-1)
/ /只有iBound返回的情况
返回lBound;
}
使用uint xcludeRndBase =(单位。MaxValue(uint.MaxValue %(单位)(uBound-lBound)));
{做
rng.GetBytes(rndnum);
urndnum = System.BitConverter.ToUInt32(rndnum 0);
(urndnum=xcludeRndBase);
返回(int)(urndnum%(ubound-l绑定))+l绑定;
}
保护char GetRandomCharacter(){
int upperBound = pwdCharArray.GetUpperBound(0);
如果(真==这个。ExcludeSymbols){
upperBound = PasswordGenerator.UBoundDigit;
}
int随机数字=get密码随机数字(pwdchararray.get小写(0),上界);
char randomChar = pwdCharArray[randomCharPosition];
返回randomChar;
}
公共字符串生成(){
/ /得到最小和最大之间随机的长度
int pwdLength = GetCryptographicRandomNumber(这一点。至少,this.Maximum);
StringBuilder pwdBuffer=new StringBuilder();
pwdBuffer。= this.Maximum能力;
/ /产生随机字符
char lastCharacter nextCharacter;
/ /初始化标记
最后一个字符=n;
for(int i=0;i小于pwdLength;i++)
nextCharacter = GetRandomCharacter();
如果(假==这个。ConsecutiveCharacters){
(last字符==next字符)
nextCharacter = GetRandomCharacter();
}
}
如果(假==这个。RepeatCharacters){
字符串temp = pwdBuffer.ToString();
int duplicateIndex = temp.IndexOf(nextCharacter);
而(1 != duplicateIndex){
nextCharacter = GetRandomCharacter();
duplicateIndex = temp.IndexOf(nextCharacter);
}
}
如果(空!=。除外)){
而(1 != this.Exclusions.IndexOf(nextCharacter)){
nextCharacter = GetRandomCharacter();
}
}
pwdBuffer.Append(nextCharacter);
lastCharacter = nextCharacter;
}
如果(零!= pwdBuffer){
返回pwdBuffer.ToString();
}
其他{
返回String.Empty;
}
}
公共bool ConsecutiveCharacters {
{回报。hasConsecutive;}
{这个设置。hasConsecutive =价值;}
}
公共bool ExcludeSymbols {
{回报。hasSymbols;}
{这个设置。hasSymbols =价值;}
}
公共字符串排除{
{回报。excl
文档评论(0)