Algorítimo para comparar palavras

Pessoal, primeiramente, eu sou estudante do primeiro semestre da ADS e fiz um programa para descobrir o que o usuário digita sem passar este valor pra ele, eu fiz isso com CHARs, ou seja, comparando letras e isso é possível por causa do char++ que contem uma biblioteca de char e vai comparando até achar o que eu quero, eu gostaria de saber se tem como fazer isso com palavras (Strings). Eu imagino que eu tenha que ter um array gigante com um zilhão de palavras, correto? o Java tem essa biblioteca? Não sei se me fiz entender.

veja meu código

public class Teste {

public static void main(String[] args){
	
	java.util.Scanner scan = new java.util.Scanner(System.in);
	String senha;
	int cont = 0;
	
	System.out.print("Digite uma senha: ");
	senha = scan.nextLine();
	
	char[] letrasDaSenha = senha.toCharArray(); 
	char[] arrayAux = new char[letrasDaSenha.length];
	
	for(int i = 0; i < letrasDaSenha.length; i++){
		arrayAux[i] = 'a';
		cont++;
		while(letrasDaSenha[i] != arrayAux[i]){
			arrayAux[i]++;
			cont++;
		}			
	}
	System.out.println("Sua senha é: " + String.valueOf(arrayAux));
	System.out.println("Foi necessário fazer " + cont + " testes para chegar neste resultado.");		
}

}

Basicamente, o que você fez foi usar tentativa e erro para encontrar a senha pelo char.

Você pode usar a análise combinatória para gerar palavras, ou usar dicionários e testar um por um, como ocorre em análise de vulnerabilidade.
De qualquer forma, nenhum dos dois vai te assegurar o que você quer fazer.

Nenhuma linguagem de programação precisa fornecer isto.
Como dito, use a combinatória para gerar strings e dependendo da sequencia de caracteres do usuário você pode passar no mínimo milésimos de segundos para achar algo ou Long.MAX_VALUE anos para não achar nada

1 curtida