我正在使用随机密码生成器来创建符合某些条件的密码,包括但不限于:
确保生成的密码满足所有这些要求的最佳算法方法是什么?
我不是在寻找一个完整的解决方案,我只需要一些好的想法和指导。
答案 0 :(得分:6)
1)随机生成数字L,这将是您密码的确切长度。即,生成使其大于8
2)随机生成一个数字LL,它将是小写字母的数量。 LC必须在[1..L-2]范围内
3)随机生成数字LU为大写。必须在[1..L-LL-1]范围内
4)LD = L-LL-LU大写数字的数量
5)随机生成LL小写字母,LU大写字母和LD数字并将它们保存在列表(数组)中
6)随机乱洗阵列
HTH
答案 1 :(得分:4)
算法通常应该在前几次迭代中成功,并使您不必执行混洗算法。
答案 2 :(得分:1)
还有一种替代亚美尼亚提出的精确结构。如果您的条件可以被高概率地满足那么:
在惰性语言中,这是大约6行非样板代码,不需要任何改组。
编辑:是的,按照评论中的步骤移动窗口,而不是滑动窗口。谢谢!