如何制作具有指定长度的字符串密码

时间:2016-09-16 10:48:35

标签: java md5

我正在尝试创建一个暴力应用程序,它接受一个简单的MD5哈希的输入,并且用户最初指定密码的长度。从那里开始,我使用了一个涵盖所有可能性的课程。所以例如..

MD5中的“密码”一词将变为5f4dcc3b5aa765d61d8327deb882cf99。程序将从aaaaaaaa开始,然后迭代到aaaaaaab,依此类推,并将转换为MD5并与用户输入进行比较。

我遇到的问题是如何使用用户指定的字符长度创建一个字符串,通过字母表中的所有字母进行迭代。本能地我尝试了这个:

public String calculateHash() throws InterruptedException
{
    //pass is length 1
    if(length > 0)
    {
        for(int i=0; i < 25; i++)
        {
            //pass is length 2
            if(length > 1)
            {
                for(int x=0; x < alphabet.length; x++)
                {
                    if(length > 2)
                    {
                        for(int y=0; y < alphabet.length; y++)
                        {
                            if(length > 3)
                            {
                                for(int z=0; z < alphabet.length; z++)
                                {
                                    if(length > 4)
                                    {
                                        for(int v=0; v < alphabet.length; v++)
                                        {
                                            if(length > 5)
                                            {
                                                for(int f=0; f < alphabet.length; f++)
                                                {
                                                    if(length >= 6)
                                                    {
                                                        for(int g=0; g < alphabet.length; g++)
                                                        {

                                                         //character would be added to the end of the string. 

迭代完成后,完成的字符串将被发送到方法以对其进行散列并返回。但必须有一种更有效的方法来解决这个问题。

0 个答案:

没有答案