Загрузка...

Как реализовать хеширование паролей в c++?

Тема в разделе C/C++ создана пользователем xviixviixviixvii 11 янв 2022. (поднята 13 янв 2022) 243 просмотра

  1. xviixviixviixvii
    xviixviixviixvii Автор темы 11 янв 2022 1948 17 апр 2021
    Шапка
     
  2. Cow
    Cow 11 янв 2022 4383 25 янв 2020
  3. Пивко
    Пивко 11 янв 2022 :beer:Best CS2 DLC - lolz.live/threads/3734559 2671 14 дек 2019
  4. Replacer
    Replacer 11 янв 2022 ARTIFICIAL SUICIDE 99 21 июл 2021
    Всмысле как? Просто вызываешь хеширующую функцию, с строкой в виде параметра. Если надо понять, как они выглядят, то вот примеры.
    SDBM Hash:
    C
    unsigned int SDBMHash(char *str) {
    unsigned int hash = 0;

    while(*str++)
    hash = str + (hash << 6) + (hash << 16) - hash;

    return hash;
    }
    FNV32:
    C
    //Возможны коллизии, так что следует использовать функцию FNV выше битности
    #define FNV32_PRIME 0x01000193U

    unsigned int FNV32(char *str) {
    unsigned int hash = 0x811C9DC5;

    while(*str) {
    hash *= FNV32_PRIME;
    hash ^= (unsigned int)*str++;
    }

    return hash;
    }
    Выхлоп:
    Код
    Original string: Kernel Bitch
    SDBM Hash: 3171522438
    FNV32 Hash: 4159925106
    Если нужна конкретно библиотека для хеширования, то рекомендую посмотреть в сторону OpenSSL или CryptoPP, там куча криптографических функций и не только хеш-функций.
    P.S: если нужно, чтоб хеширование было предкомпилированным, используй
    constexpr
    .
     
    11 янв 2022 Изменено
    1. xviixviixviixvii Автор темы
    2. Replacer
      Никак, это же хеш-функция. "Безвозвратное шифрование".
      Однако, я думаю есть какие-то специфические атаки на SDBM, попробуй поискать.
Top
Загрузка...