Convertion C => java

Bonjour,
Voila, comme le dit mon titre j'ai un petit problème, je passe un oral de projet informatiques demain et je suis pas mal à la bourre, j'ai pour projet de créer une algo java dans le principe du bruteForce (pas dans le but de nuire à qui que ce soit, juste celui de réussir mon éxamen ^^ )
J'ai trouvé un programme en C et ai essaye de le traduire en java, lais j'ai quelques petit probléme que je n'arrive pas à résoudre malgrès toutes les aides présentes sur la toile.

J'espére qu'un jeune (ou moins jeune) prodige de l'informatique pourra m'aider =)

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ptibruteforce;
import java.io.*;
import java.nio.*;
/**import java.util.*;
/**
 *
 * @author Giloup
 */

public class Main {
    long NBmdp = 0;
    /**
     * @param args the command line arguments
     */

    public static void main(String[] args) throws IOException {
        // TODO code application logic here
        int longMin = 0;
        int longMax = 0;

        System.out.print("Générateur BruteForce \n");
        System.out.print("Veuillez saisir la longueur minimum du mot de passe : \n");
        
        BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
        longMin = br.read();

        System.out.print("Veuillez saisir la longueur maximum du mot de passe : \n");

        BufferedReader br2 = new BufferedReader( new InputStreamReader( System.in ) );
        longMax = br2.read();

        BruteForce (longMin, longMax);
    }

    public static void BruteForce (int lgMin, int lgMax){

        char fCharList[] = {'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 lg = lgMin;
        int i, x, y;

        char* Buff = (char*) malloc(lg);  /*a partir d'ici sa commence a merdouiller :s*/ 

        while (lg != lgMax)
        {
            realloc (Buff, lg);
            int Nchar[lg];
            for (i=0; i<=lg; i++);
            {
                Buff[i] = All[0];
                Nchar[i] = 0;
            }
        while (Nchar[0] != 26);
            {
            for(x=0; x<=26; x++)
                {
                Buff[lg] = All[x];
                Nchar[lg] = x;
                System.out.print("%s \n", Buff);
                NBmdp++;
                }
            for(y=lg; y>=0; y--)
            {
                Nchar[y] = 0;
                Nchar[y-1]++;
            }
            Buff[y] = All[Nchar[y]];
            }
        }
    lg++;
    }
free(Buff);
}


Merci d'avance à tous de votre aide =)

8 réponses

  1. Contributeur
    char* Buff = (char*) malloc(lg); /* pas de malloc en java, utilises un string à la place de ton char*

    while (lg != lgMax)
    {
    realloc (Buff, lg); /* pas de reallocation, on gère pas la mémoire)
    int Nchar[lg];
    for (i=0; i<=lg; i++);
    {
    Buff[i] = All[0];
    Nchar[i] = 0;
    }
    while (Nchar[0] != 26);
    {
    for(x=0; x<=26; x++)
    {
    Buff[lg] = All[x];
    Nchar[lg] = x;
    System.out.print("%s \n", Buff);
    NBmdp++;
    }
    for(y=lg; y>=0; y--)
    {
    Nchar[y] = 0;
    Nchar[y-1]++;
    }
    Buff[y] = All[Nchar[y]];
    }
    }
    lg++;
    }
    free(Buff); /* pas besoin de supprimer la memoire, le string s'autodétruira comme un grand */
    }
    1. J'émets même un doute sur la réussite du malloc et du char*, puisque l'* désigne un pointeur, notion inexistante en Java.
      1. Merci beaucoup Nabla's
        J'ai réglé pas mal d'erreur (correctement ou pas je sais pas mais elle sont plus la =) )
        Par contre j'en ai encore 3 (petites surement =x)

                while (lg != lgMax)
                {
                    int Nchar[lg];  /* ']' expected et ';' expected je sais pas ce qu'il manque :s */
                    
                    for(i=0;i<=lg;i++);  /* empty statement after for (daufra m'expliquer ou :s ^^ */
                    {
                        Buff[i] = fCharList[0];
                        Nchar[i] = 0;  /* Variable NChar may not be initialised (c'est ce que j'essaye de faire la :( ) */
                    }
                    while(Nchar[0]!=26); /* encore empty statement.... */
                    {
                        for(x=0; x<=26; x++)
                        {
                        Buff[lg] = fCharList[x];
                        Nchar[lg] = x;
                        System.out.print("%s \n", Buff); /* print est souligné et Cannot find symbol */
                        NBmdp++; 
                        }
                    for(y=lg; y>=0; y--)
                    {
                        Nchar[y] = 0;
                        Nchar[y-1]++;
                    }
                    Buff[y] = fCharList[Nchar[y]];
                    }
                }
            lg++;
            }
        }


        Vraiment je te remercie beaucoup pour ton aide!!
        1. Contributeur
          Relis un poil ton code :

          for(i=0;i<=lg;i++);


          Donc là ta boucle for elle ne va rien faire si tu mets un ; à la fin.

          A la place de :
          int Nchar[lg];

          Essaie :
          int[] Nchar = new int[lg];


          Alors ça :
           System.out.print("%s \n", Buff);
          T'as de la chance de pas être à côté :D:D , faire une conversion comme ça à la volée ^^

          Donc remplace :
           System.out.print("%s \n", Buff);

          Par :
           System.out.println(Buff);


          Déjà et ensuite redonne nous si il y a des erreurs.

          Le loup, solitaire et mystérieux.
          1. Super, sa fonctionne toujours pas mais au moins j'ai plus d'erreur.
            Eh c'est toujours trop tard qu'on s'en veux de pas avoir écouté son prof ^^

            La apparemment j'ai encore un problème la :
                    BruteForce (longMin, longMax);

            et la :
                            Buff[i] = fCharList[0];


            Je cherche , je cherche mais quand on a à peine les bases c'est pas facile.

            En tout cas les deux si vous remontez un jour dans le pas de calais j'offre ma tournée ^^