Edit : Veuillez noter que cette réponse date de plus de 10 ans.
Voilà une réplique :
python -c 'import crypt; print crypt.crypt("test", "$6$random_salt")'
Python 3.3+ comprend mksalt
dans la crypte ce qui rend son utilisation beaucoup plus facile (et plus sûre) :
python3 -c 'import crypt; print(crypt.crypt("test", crypt.mksalt(crypt.METHOD_SHA512)))'
Si vous ne fournissez pas d'argument pour crypt.mksalt
(il pourrait accepter crypt.METHOD_CRYPT
, ...MD5
, SHA256
et SHA512
), il utilisera le plus fort disponible.
L'ID du hash (numéro après le premier $
) est liée à la méthode utilisée :
- 1 -> MD5
- 2a -> Blowfish (pas dans la glibc principale ; ajouté dans certaines distributions Linux)
- 5 -> SHA-256 (depuis glibc 2.7)
- 6 -> SHA-512 (depuis glibc 2.7)
Je vous recommande de vous renseigner sur ce que sont les sels et sur la différence entre le cryptage et le hachage, comme le disait Smallclamger.
Mise à jour 1 : La chaîne produite est adaptée aux scripts shadow et kickstart scripts.
Mise à jour 2 : Avertissement . Si vous utilisez un Mac, consultez le commentaire sur l'utilisation de cette fonction en Python sur un Mac, où elle ne semble pas fonctionner comme prévu.
Sous macOS, vous devez no utiliser les versions ci-dessus, car Python utilise la version du système de crypt()
dont ne se comporte pas de la même manière et utilise un cryptage DES non sécurisé. . Vous pouvez utiliser ce one liner indépendant de la plateforme (nécessite passlib - installer avec pip3 install passlib
):
python3 -c 'import passlib.hash; print(passlib.hash.sha512_crypt.hash("test"))'