Почему я не могу воссоздать эту хэск -петлю Cryptojs (для получения ключа AES) в C?Javascript

Форум по Javascript
Ответить
Anonymous
 Почему я не могу воссоздать эту хэск -петлю Cryptojs (для получения ключа AES) в C?

Сообщение Anonymous »

Я пытаюсь воссоздать эту петлю, написанную в JS. Из библиотеки Cryptojs она требует фразы и солью, заставляет их 10 000 раз (для более позднего получения ключа AES и IV). Я считаю, что это просто MD5 (PassFrase + Salt) 10000 раз. < /P>

Код: Выделить всё

     while (derivedKeyWords.length < keySize) {
if (block) {
hasher.update(block);
}
block = hasher.update(password).finalize(salt);
hasher.reset();

// Iterations
for (var i = 1; i < 10000; i++) {
block = hasher.finalize(block);
hasher.reset();
}

derivedKey.concat(block);
}

< /code>
достаточно просто, но когда я пытаюсь воссоздать это в C (используя функцию MD5 OpenSSL), он дает другой результат полученного ключа. < /p>
while (sizeof(derivedkey) < keysize) {
MD5_Init(&ctx5);

if (sizeof(dgest) > 0) {
MD5_Update(&ctx5, dgest, sizeof(dgest));
}

MD5_Update(&ctx5, password, sizeof(password));
MD5_Update(&ctx5, salt, sizeof(salt));
MD5_Final(dgest, &ctx5);

for (int j = 1; j < 10000; j++) {
MD5_Init(&ctx5);
MD5_Update(&ctx5, dgest, sizeof(dgest));
MD5_Final(dgest, &ctx5);
}
strcat(derivedkey, dgest);
//I've also tried memcpy(derivedkey, dgest, sizeof(dgest));
}
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/794 ... ation-in-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»