Arduino IDE和esp8266 arduino-crypto库

时间:2018-12-30 05:14:44

标签: c++ encryption arduino aes

我为ESP8266使用arduino-crypto。我没有遇到任何错误,但确实有一个问题,希望您能为我解决。

此代码:

#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

现在,如果我同时进行加密和解密,那么它将对其进行解码就可以了。

但是,当我只是运行解密并复制加密的值然后运行以下代码时:

// decrypt
  char* encrypted = "y3QzsGi6cYiy3GGs31jXvTY8VI2OrlxsohOasiw4pgP+54gWXtUZPrjuRvOfyRTz";
  int length = strlen(encrypted);
  char decrypted[length];
  decrypt(encrypted, decrypted, length);
  Serial.print("Decrypted: ");
  Serial.println(decrypted);

它在控制台中输出:

  

解密:⸮⸮⸮⸮⸮j⸮Ҏ⸮R|;⸮⸮1234567890ABCDEF

其中有一些原始的消息字母/数字,但不确定为什么不像当您同时背对背运行时那样不对它进行解密。

该如何解决?

0 个答案:

没有答案