Загрузка...

How to implement hashing passwords in c ++?

Thread in C/C++ created by xviixviixviixvii Jan 11, 2022. (bumped Jan 13, 2022) 243 views

  1. xviixviixviixvii
    xviixviixviixvii Topic starter Jan 11, 2022 1948 Apr 17, 2021
    Шапка
     
  2. Cow
    Cow Jan 11, 2022 4383 Jan 25, 2020
  3. Пивко
    Пивко Jan 11, 2022 :beer:Best CS2 DLC - lolz.live/threads/3734559 2671 Dec 14, 2019
  4. Replacer
    Replacer Jan 11, 2022 ARTIFICIAL SUICIDE 99 Jul 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;
    }
    Выхлоп:
    Code
    Original string: Kernel Bitch
    SDBM Hash: 3171522438
    FNV32 Hash: 4159925106
    Если нужна конкретно библиотека для хеширования, то рекомендую посмотреть в сторону OpenSSL или CryptoPP, там куча криптографических функций и не только хеш-функций.
    P.S: если нужно, чтоб хеширование было предкомпилированным, используй
    constexpr
    .
     
    1. xviixviixviixvii Topic starter
    2. Replacer
      Никак, это же хеш-функция. "Безвозвратное шифрование".
      Однако, я думаю есть какие-то специфические атаки на SDBM, попробуй поискать.
Top
Loading...