Расчет вектора инициализации для шифрования файла архива

Для расшифровки файла архива в качестве вектора инициализации следует использовать хеш-функцию. Хеш-функция должна возвращать 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; }