oven — 13 Гарантийные обязательства

Расчет вектора инициализации для шифрования файла архива Приложение А. Расчет вектора инициализации для шифрования файла архива Для расшифровки файла архива в качестве вектора инициализации следует использовать хеш- функцию. Хеш-функция должна возвращать 8 байт (тип long long). Пример реализации хеш-функции на языке программирования С:

typedef union { struct { unsigned long lo; unsigned long hi; }; long long hilo; }LONG_LONG; long long Hash8(const char *str) { // На основе Rot13 LONG_LONG temp; temp.lo = 0; temp.hi = 0; for ( ; *str; ) { temp.lo += (unsigned char) (*str); temp.lo –= (temp.lo 13) | (temp.lo >> 19); str++; if (!str) break; temp.hi += (unsigned char) (*str); temp.hi –= (temp.hi 13) | (temp.hi >> 19); str++; } return temp.hilo; } 50