Module Python Getpass

Module Python Getpass
Nous gardons tous des secrets, n'est-ce pas? Même nos programmes font. La chose importante à propos des secrets est que nous devons les garder en toute sécurité et secrètement cachés aux entités qui ne devraient pas avoir accès à ces clés secrètes, phrases ou mot de passe qui permettra aux utilisateurs de faire quelque chose qu'ils ne sont pas autorisés à faire. Le même soin doit être pris lorsque nous acceptons les clés secrètes, les phrases de passes ou les mots de passe des utilisateurs de nos programmes comme la chaîne secrète ne doit pas être repris lorsque nous les tapons à l'écran. Le python faire passer Le module nous permet de faire cela efficacement.

Module Python Getpass

Utilisation de Python faire passer Module, il est possible d'accepter les mots de passe dans les programmes Python et de protéger les phrases de passe. Nous verrons des exemples de maintien des mots de passe en sécurité et de la façon dont nous pouvons diffuser des mots de passe du terminal aux fichiers texte. Commençons par quelques exemples.

Exemple de base Python Getpass

Dans cet exemple, nous commencerons par un exemple très fondamental de la façon dont nous pouvons faire entrer un utilisateur à saisir un mot de passe dans le terminal et nous assurer que le mot de passe n'est pas repris à l'invite de commande. Voici le même programme:

Importer GetPass
essayer:
mot de passe = getpass.getPass ()
sauf l'exception en tant qu'ex:
Print ('Erreur s'est produite:', ex)
autre:
Imprimer ('Mot de passe entré:', mot de passe)

Voici ce que nous récupérons avec cette commande:

Obtenez un mot de passe secret

Le mot de passe de chaîne est l'invite par défaut qui est présentée par le script Python. Dans l'exemple suivant sera de personnaliser cela à quelque chose que nous aimerions utiliser dans nos programmes.

Python getpass avec une invite personnalisée

Dans cet exemple, nous personnaliserons l'invite qui est montrée à l'utilisateur lorsque Python demande une phrase secrète:

Importer GetPass
pwd = getpass.getpass (prompt = 'qui est la meilleure île d'Ubuntu à visiter?')
Si pwd == 'Linuxhint':
Imprimer ('bien sûr!')
autre:
imprimer ('où est-ce?')

Voyons la sortie de cette commande:

Invite personnalisée pour obtenir le mot de passe

Cette commande est utile lorsque vous souhaitez demander des phrases de passe en dehors des chaînes de mot de passe.

Diffuser le mot de passe vers un autre streaml

Le faire passer Le module nous permet de diffuser le mot de passe qu'un utilisateur entre dans certains autres flux comme un fichier, des journaux ou tout ce qui peut être représenté en tant que flux. Nous avons juste besoin de passer le flux à la fonction elle-même:

Importer GetPass
importer sys
pwd = getpass.getpass (stream = sys.stderr)
Print ('Mot de passe entré:', PWD)

Voici ce que nous récupérons avec cette commande:

Streaming Mot de passe vers d'autres flux

Obtenir des mots de passe sans terminal

Le python faire passer le module doit être contrôlé par un termios. Ceci est applicable lorsque nous travaillons avec certains systèmes basés sur UNIX. Avec cela, l'écho peut être désactivé. Lorsque nous exécutons l'exemple suivant sur une machine non Unix:

Echo "pas sombre" | python3 getpass_defaults.py

Voici ce que nous récupérons avec cette commande:

Commande Termios

Alors que nous exécutions le script sur une machine non Unix, la chaîne de sortie était ce que nous entrons. Sinon, nous aurions simplement vu pas sombre Chaîne comme sortie sur le terminal.

En savoir plus sur Télétype terminaux ici.

Conclusion

Dans cette leçon, nous avons examiné comment nous pouvons utiliser Python faire passer Module pour gérer efficacement les phrases de passe secrètes dans nos programmes Python.