首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

[C#] 十进制转62进制,实现穷举指定位数的所有密码组合(暴力破解)

2012-11-09 
[C#] 10进制转62进制,实现穷举指定位数的所有密码组合(暴力破解)因为我们这里要穷举的密码包括0-9,a-z,A-Z

[C#] 10进制转62进制,实现穷举指定位数的所有密码组合(暴力破解)

因为我们这里要穷举的密码包括0-9,a-z,A-Z共62个字符,所以我们采用62进制来遍历。


首先,我们实现一个10进制转62进制的方法。


        /// <summary>        /// 遍历指定位数之间的所有组合        /// </summary>        /// <param name="minLength">最短位数</param>        /// <param name="maxLength">最长位数</param>        public static void testPassword(int minLength, int maxLength)        {            for (int i = minLength; i <= maxLength; i++)            {                long maxNum = (long)Math.Pow(62, i);                for (long j = 0; j < maxNum; j++)                {                    Console.WriteLine(ConvertTo62(j, i));                }            }        }


调用:

testPassword(2, 3);

程序将会输出2位和3位密码的所有组合形式。(从:00-ZZZ)


根据这个思路,我们还可以写出更多形式的穷举算法。比如我们遍历的密码还包含小数点“.”,那么我们只需要把算法改成63进制即可。


热点排行