string mhash_keygen_s2k (int hash, string password, string salt, int bytes)
mhash_keygen_s2k() генерирует ключ длиной bytes из заданного пользователем пароля.
Это алгоритм Salted S2K, как специфицировано в документе OpenPGP (RFC 2440). Этот алгоритм будет использовать алгоритм специфицированного
hash для создания ключа. Параметр salt обязан отличаться и быть достаточно произвольным для каждого ключа,
генерируемого вами, чтобы создавать разные ключи. Этот salt обязан быть известен, когда вы проверяете ключи; таким образом,
неплохо будет присоединять ключ к нему. Salt имеет фиксированный размер в 8
байтов и будет заполняться нулями, если вы предоставите меньшее количество байтов.
Помните, что предоставляемые пользовательские пароли реально не подходят для использования в качестве ключей в алгоритмах криптографии, поскольку
пользователи выбирают ключи, которые они могут ввести с клавиатуры. Эти пароли
используют только от 6 до 7 бит на символ (или менее). Настоятельно
рекомендуем использовать какую-нибудь трансформацию (вроде этой функции)
предоставляемого пользователем ключа.