Ключ PHP AES и формат iv - PullRequest
0 голосов
/ 07 мая 2019

Как написать ключ AES и iv из библиотеки Arduino в PHP?

Я нашел этот пример Как зашифровать и расшифровать строку в PHP

$encrypt_method = "AES-256-CBC";
$secret_key = 'This is my secret key';
$secret_iv = 'This is my secret iv';

ТакжеЯ нашел AES-библиотеку для Arduino , но она имеет другой формат для ключа и iv (hex)

// AES Encryption Key
byte aes_key[] = { 0x15, 0x2B, 0x7E, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C };

// General initialization vector (you must use your own IV's in production for full security!!!)
byte aes_iv[N_BLOCK] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

Как правильно написать ключ и iv из кода Arduino в PHP?Я имею в виду, могу ли я просто преобразовать шестнадцатеричный формат в строку Unicode вручную или я могу сделать это с помощью PHP с помощью какой-либо функции?Или, может быть, есть более удобный способ / способ передачи зашифрованных сообщений между Arduino и PHP?Любой совет будет оценен!

1 Ответ

1 голос
/ 08 мая 2019

Если вы хотите записать это напрямую, вы можете использовать шестнадцатеричные экранированные символы в строке, например,

$secret_key = "\x15\x2B\x7E\x16\x28\xAE\xD2\xA6\xAB\xF7\x15\x88\x09\xCF\x4F\x3C"

Обратите внимание на обязательные двойные кавычки, которые необходимы для распознавания символов \x.

Строки PHP, как и строки во многих языках, являются внутренне только байтами. То, как эти байты интерпретируются, может отличаться, но это не имеет значения, если вы используете его как байтовый массив.

...