Я использую arduino-crypto для моего ESP8266.Я не сталкиваюсь ни с какими ошибками, но у меня есть проблема, которую, я надеюсь, вы сможете решить для меня.
Этот код:
#define BLOCK_SIZE 16
uint8_t key[BLOCK_SIZE] = { 0x1C,0x3E,0x4B,0xAF,0x13,0x4A,0x89,0xC3,0xF3,0x87,0x4F,0xBC,0xD7,0xF3, 0x31, 0x31 };
uint8_t iv[BLOCK_SIZE] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
char plain_text[] = "1234567890ABCDEF1234567890ABCDEF";
// encrypt
int length = 0;
bufferSize(plain_text, length);
char encrypted[length];
encrypt(plain_text, encrypted, length);
Serial.println("");
Serial.print("Encrypted: ");
Serial.println(encrypted);
Serial.println(length);
Serial.println(strlen(encrypted));
Работает просто отлично и дает мне значение шифрованияиз:
Зашифровано: y3QzsGi6cYiy3GGs31jXvTY8VI2OrlxsohOasiw4pgP + 54gWXtUZPrjuRvOfyRTz
Однако, если я хорошо выполню и шифрование, и расшифровку *1013* * 101 * * 101 * * * 101 * * * * 101 * * * * 101 * * * * 101 * * 101 * * расшифровывается *, шифруется и дешифруется * 4 * * * * 101 * * * * 101 * * * * * * 101 * * 101 * * * * * * *1013* * * * * * 101 * * * * * * * * *1013* * * * * * * 101 *просто запустите расшифровку и скопируйте зашифрованное значение, а затем выполните следующее:
// decrypt
char* encrypted = "y3QzsGi6cYiy3GGs31jXvTY8VI2OrlxsohOasiw4pgP+54gWXtUZPrjuRvOfyRTz";
int length = strlen(encrypted);
char decrypted[length];
decrypt(encrypted, decrypted, length);
Serial.print("Decrypted: ");
Serial.println(decrypted);
Это выводит это в консоли:
Расшифровано: ⸮⸮⸮⸮⸮j⸮Ҏ⸮R |; 31234567890ABCDEF
Там есть несколько букв / цифр оригинального сообщения, но не уверен, почему его не расшифровывают, как это происходит при одновременном запуске обоих.
Что можно сделать, чтобы это исправить?