42 template<std::
size_t sz,
typename T = u
int8_t>
59 explicit md5(
const std::string& input);
60 md5(
const std::string& input,
const std::string& salt,
int iteration_count = 10);
62 virtual std::string
hex_digest()
const override;
68 bcrypt(
const std::string& input);
79 virtual std::string
hex_digest()
const override;
std::size_t iteration_count_delim_pos
virtual std::string base64_digest() const override
static bool is_valid_prefix(const std::string &hash)
std::string get_salt() const
static bcrypt from_hash_string(const std::string &input)
virtual std::string hex_digest() const override
static bcrypt from_salted_salt(const std::string &input)
static bcrypt hash_pw(const std::string &password, bcrypt &salt)
virtual std::string hex_digest() const =0
virtual std::string base64_digest() const =0
static const unsigned int DIGEST_SIZE
std::array< T, sz > raw_digest() const
static bool is_valid_prefix(const std::string &hash)
virtual std::string base64_digest() const override
static std::string get_salt(const std::string &hash)
virtual std::string hex_digest() const override
static int get_iteration_count(const std::string &hash)
static bool is_valid_hash(const std::string &hash)
md5(const std::string &input)
static const int BCRYPT_HASHSIZE
Base class for all the errors encountered by the engine.
hash_error(const std::string &message)