Si vous voulez simplement éviter de jeter un coup d'œil à un mot de passe, vous pouvez envisager d'encoder/décoder le mot de passe vers/depuis base64. Ce n'est pas du tout sécurisé, mais le mot de passe ne sera pas lisible par un humain/robot.
import base64
# Encode password (must be bytes type)
encoded_pw = base64.b64encode(raw_pw)
# Decode password (must be bytes type)
decoded_pw = base64.b64decode(encoded_pw)
Évidemment, votre meilleure option est de déléguer cela à un tiers. Si vous pouvez vous authentifier avec tout ce à quoi vous vous connectez en utilisant d'autres informations d'identification (par exemple, le compte d'utilisateur sous lequel votre processus s'exécute), vous pouvez laisser les niveaux d'autorisation à la couche du système d'exploitation. Alternativement, si suffisamment important / possible, vous pouvez demander à l'utilisateur (en stockant la clé dans le wetware (sans doute) légèrement moins piratable à la place)
Si vous faites besoin de stocker un mot de passe ou une clé, je vous recommande de le stocker séparément à partir de votre code, dans un fichier que vous avez lu, et désobscurcissez si nécessaire. Cela présente les avantages suivants :
-
Vous pouvez définir les autorisations de fichier sur le fichier aussi serrées que possible (c'est-à-dire uniquement lisibles par le compte sous lequel votre programme s'exécute), contrairement au reste de votre programme qui peut être lu par plus de personnes.
-
Vous ne l'archiverez pas accidentellement dans votre système de contrôle de version !
-
Pas besoin d'être limité aux caractères imprimables (ou d'utiliser un échappement maladroit) pour une chaîne python, vous pouvez donc utiliser un fichier de clés arbitraire si possible, plutôt qu'un mot de passe lisible par l'homme. S'il n'est pas saisi par l'homme, il n'y a aucune raison d'avoir toutes les faiblesses des mots de passe.
Pour obscurcir, vous pouvez utiliser base64 comme suggéré, ou un schéma maison comme XORing ou décryptage avec une autre clé stockée ailleurs, nécessitant que les deux emplacements soient examinés. Sachez que cela ne protège pas contre quoi que ce soit au-delà du surf des épaules opportuniste (le cas échéant) - assurez-vous qu'il y a un certain niveau de vrai la sécurité également (y compris les plus évidentes comme l'accès physique à la machine !)