Executando verificação de segurança...
1

Parabéns AugustoSavi, muito legal!

Eu não conheço os detalhes sobre a criptografia AES, porém, imagino que ao criptografar uma mensagem o resultado é um array de bytes que representa a mensagem codificada. Então, se você apenas tentar mostrar esse linguição de bytes como texto, vai ter caracteres "quebrados", já que pode haver bytes que não são associados a caracteres ASCII.

Como é tratado esse problema? A mensagem codificada é convertida para texto de alguma forma?

Carregando publicação patrocinada...
1

Boa noite, man não sei se entendi muito bem sua pergunta...
Mas digamos que eu queira enviar enviar uma mensagem que precisa ser secreta pelo whatsapp, com o software no pc eu ativo o modo criptografia do Arduino e a mensagem digitada no teclado aparece antes no display do Arduino(sem ser enviada para o pc), quando eu clico enter a mensagem é criptografada com uma chave e enviada via serial para o pc, com um programa em python eu recebo essa string e digito ela(criptografada) e envio para o outra pessoa...

A pessoa que recebeu essa mensagem criptografa vai ter que ter o mesmo software e dispositivo, com isso ela ativa o modo descriptografia, copia e envia a mensagem recebida para o arduino, com isso o Arduino vai descriptografar a mensagem e mostrar no lcd descriptografada.

Alguns caracteres especias podem ser perdidos sim nesse processo do aes ou ate não ser suportado pelo lcd 16x2 (emojis e afins), atualmente não existe uma trativa para isso...(quem sabe em trabalhos futuros...)

Mas pensando por cima teria que de usar um hardware mais potente com um lcd de alta resolução(Oled, tft)

1

Obrigado pela resposta AugustoSavi, realmente acho que não ficou claro minha pergunta, peço perdão. Mas vou te dar uma sugestão que resolve o problema que eu citei e o problema que você citou:

Alguns caracteres especias podem ser perdidos sim nesse processo do aes ou ate não ser suportado pelo lcd 16x2

Sugiro o seguinte, ao criptografar a mensagem, você pega os bytes do resultado e codifica eles usando base64, dessa forma tu sempre vai obter um texto ASCII válido. Logo, ao invés de mostrar no display a mensagem criptografada você mostra a mensagem criptografada e codificada em base64. Dessa forma, não corre risco de ter caracteres inválidos e ter o problema que eu citei.

Por fim, no receptor da mensagem, vai ter que decodificar usando base64 antes de descriptografar. O que acha?