I 具有使用4字節IV來加密一些數據。但是,我正在使用的加密算法(AES128)需要一個16字節(128位)的密鑰。說,我的代碼如下:有什麼辦法可以將4字節的數字表示爲16字節的數字嗎?
#include<gcrypt.h>
void encrypt(){
int IV = 6174;
gcry_cipher_hd_t hd;
errStatus = gcry_cipher_open(&hd, GCRY_CIPHER_AES128, GCRY_CIPHER_MODE_CBC, 0);
errStatus = gcry_cipher_setkey(hd, keyBuffer, 16);
gcry_cipher_setiv(hd, &IV, 16);
gcry_cipher_encrypt(hd, output, 16, bytesToEncrypt, 16);
}
發言權keyBuffer
包含一個16字節的密鑰和bytes,
output`分別我的輸入和輸出。我如何正確給予IV?
這似乎是錯誤的事情。小型IV將危及加密安全。如果你在你的例子中使用了一個常數IV,它將會大大受損。對於加密的每條消息,IV應該是隨機的並且是不同的。 – interjay
我知道。它只是一個熟悉加密庫的類練習。 – TheRookierLearner