mhash_keygen_s2k() gera um chave que tem
bytes
de comprimento, apartir de uma
senha (password) do usuário. Este é o algoritmo Salted S2K
como especificado no documento OpenPGP (RFC 2440). Este
algoritmo usará o algoritmo hash
para criar a chave. O salt
deve ser
diferente e aleatório o suficiente para que cada chave que
você gere seja diferente. Este salt tem que ser sabido quando
você checar as suas chaves (keys), logo é uma boa ideia
que a chave siga o salt. O salt tem o comprimento fixo de 8
bytes e será completado com zeros se voce fornecer menos bytes.
Tenha em mente que as senhas fornecidas pelos usuários não são
boas para serem usadas como chaves em algoritmos criptográficos,
pois usuários normalmente escolhem chaves que eles podem escrever
no teclado. Estas senhas usam somente 6 a 7 bits por caracter
(ou menos). É altamente recomendado usar algum tipo de
transformação (como esta função) na chave dada pelo usuário.