Я пытаюсь понять, как использовать эту библиотеку c ( tiny-AES-c ). Как веб-разработчик, я ищу эквивалентный код C для этой скрипты JS .
Код JS прост:
// Encrypt
var ciphertext = CryptoJS.AES.encrypt('my message', 'secret key 123');
console.log("Encrypted: " + ciphertext.toString());
// Decrypt
var bytes = CryptoJS.AES.decrypt(ciphertext.toString(), 'secret key 123');
var plaintext = bytes.toString(CryptoJS.enc.Utf8);
console.log("Decrypted: " + plaintext);
Учитывая сообщение для шифрования и секрет, код генерирует зашифрованные данные и преобразовывает результаты в строку.
Мой код C:
int main()
{
uint8_t in[] = "my message";
uint8_t key[] = "secret key 123";
struct AES_ctx ctx;
AES_init_ctx(&ctx, key);
printf("ORIG: %s",(char*) in);
// Encrypt
AES_ECB_encrypt(&ctx, in);
printf("\nENC: %s",(char*) in);
// Decrypt
AES_ECB_decrypt(&ctx, in);
printf("\nDEC: %s",(char*) in);
return 0;
}
Выход:
ORIG: my message
ENC: ̤�+��5<n]EYK�ظ/����
DEC: my message%
Я понимаю, что не должен пытаться печатать результат в виде строки, но не мог понять, как получить аналогичные (с JS) результаты, используя API tiny-AES-c Кроме того, когда я пытался использовать более длинные сообщения, я получал странные результаты, что наводило меня на мысль, что я использую эту библиотеку неправильно.
Q : Каким будет код C, эквивалентный вышеуказанному JS?