Olá estou fazendo um trabalho do curso em que tenho que pegar um arquivo pdf ou o txt que o professor passou e encriptar ele pelos algoritmos cifra de cesar, playfrai e transposição , gostaria de saber como faço para meu algoritmo ler esse arquivo ou em pdf ou o txt e encriptar no formato pedido , pois toda vez que passo muito text grande ele quebra .
Nunca tinha tentado ler PDFs, mas pelo que pesquisei agora, parece que o Java não faz isso nativamente, vc precisaria de uma biblioteca de terceiros tipo essa:
Acho que a parte que te interessa começa em Character Streams, mas sugiro que leia desde o inicio.
staroski1 like
Não vejo necessidade de utilizar uma biblioteca para manuseio de PDF.
O que nosso colega quer é encriptar o conteúdo do arquivo, isto é, bagunçar os bytes que o compõe.
Posta o código que você escreveu, provavelmente estás tentando carregar todo o conteúdo do arquivo para a memória, isso não é legal, vá encriptando em pequenos blocos de 4KB ou 8KB.
wldomiciano
Verdade! Eu não tinha me atentado pro real problema que é o fato do programa quebrar ao passar arquivo grande.
publicstaticStringencrypt(StringplainText,intshiftKey){plainText=plainText.toLowerCase();StringcipherText="";for(inti=0;i<plainText.length();i++){intcharPosition=ALPHABET.indexOf(plainText.charAt(i));intkeyVal=(shiftKey+charPosition)%26;charreplaceVal=ALPHABET.charAt(keyVal);cipherText+=replaceVal;}returncipherText;}publicstaticStringdecrypt(StringcipherText,intshiftKey){cipherText=cipherText.toLowerCase();StringplainText="";for(inti=0;i<cipherText.length();i++){intcharPosition=ALPHABET.indexOf(cipherText.charAt(i));intkeyVal=(charPosition-shiftKey)%26;if(keyVal<0){keyVal=ALPHABET.length()+keyVal;}charreplaceVal=ALPHABET.charAt(keyVal);plainText+=replaceVal;}returnplainText;}publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);System.out.println("Digie a palavra para encriptar: ");Stringmessage=newString();message=sc.next();System.out.println("Encriptada : ");System.out.println(encrypt(message,3));System.out.println("Mensagem digitada primeiro : ");System.out.println(decrypt(encrypt(message,3),3));sc.close();}}