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:
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.
Desculpa não ter colocado o código
Esse é um dos algoritmos que pretendo usar para fazer a atividade , se vcs tiverem outra sugestão aceito.
A atividade se consiste em pegar ou um arquivo PDF ou TXT e encriptar nas determinadas formas que eu passei , cifra de cesar entre outros .
public static class CaesarCipher
{
public static final String ALPHABET = “abcdefghijklmnopqrstuvwxyz”;
public static String encrypt(String plainText, int shiftKey)
{
plainText = plainText.toLowerCase();
String cipherText = "";
for (int i = 0; i < plainText.length(); i++)
{
int charPosition = ALPHABET.indexOf(plainText.charAt(i));
int keyVal = (shiftKey + charPosition) % 26;
char replaceVal = ALPHABET.charAt(keyVal);
cipherText += replaceVal;
}
return cipherText;
}
public static String decrypt(String cipherText, int shiftKey)
{
cipherText = cipherText.toLowerCase();
String plainText = "";
for (int i = 0; i < cipherText.length(); i++)
{
int charPosition = ALPHABET.indexOf(cipherText.charAt(i));
int keyVal = (charPosition - shiftKey) % 26;
if (keyVal < 0)
{
keyVal = ALPHABET.length() + keyVal;
}
char replaceVal = ALPHABET.charAt(keyVal);
plainText += replaceVal;
}
return plainText;
}
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("Digie a palavra para encriptar: ");
String message = new String();
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();
}
}