Az mhash_keygen_s2k() bytes méretű kulcsot generál a megadott password alapján. Az S2K algoritmust használja, amely az OpenPGP leírásban (RFC 2440) van definiálva. A megadott hash algoritmust használja a kulcs előállítására. A salt minden generált kulcsra más-más kell legyen, kellőképpen véletlenszerű értékekkel, hogy különböző kulcsok álljanak elő. A salt-nak ismertnek kell lennie a kulcsok ellenőrzésekor, ezért jó ötlet a kulcsokat hozzáfűzni ehhez. A salt mindig nyolc bájt hosszú legyen, ha ennél kevesebb, automatikusan nullákkal töltődik fel.
Figyelembe veendő mindenek előtt, hogy a felhasználók által beadott jelszavak nem túlságosan alkalmasak arra, hogy titkosítási rendszerek kulcsai legyenek, mivel a felhasználók általában jól begépelhető kulcsot választanak. Ezek a jelszavak csak 6-7 bitet (vagy még kevesebbet) használnak ki karakterenként. Nagyon ajánlott a beadott jelszóra olyan átalakítás használata, mint ez a függvény.