GNU/Linux >> Linux の 問題 >  >> Linux

Python で文字列を難読化する

さりげなくパスワードをちらりと見ないようにしたい場合は、base64 との間でパスワードをエンコード/デコードすることを検討してください。少なくとも安全ではありませんが、パスワードは人間やロボットが簡単に読み取ることはできません.

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)

明らかに、最善の選択肢は、これを第三者に委任することです。他の資格情報 (たとえば、プロセスが実行されているユーザー アカウント) を使用して接続しているもので認証できる場合は、アクセス許可レベルを OS レイヤーに任せることができます。あるいは、十分に重要/可能であれば、ユーザーにプロンプ​​トを表示することもできます (代わりに、(ほぼ間違いなく) ハッキングされにくいウェットウェアにキーを格納します)

もし パスワードまたはキーを保存する必要があります。別に保存することをお勧めします コードから、読み込んだファイルで、必要に応じて難読化を解除します。これには次のような利点があります:

  • より多くの人が読み取る可能性のあるプログラムの残りの部分とは異なり、ファイルのファイル許可をできるだけ厳しく設定することができます (つまり、プログラムを実行するアカウントのみが読み取ることができます)。

  • バージョン管理システムに誤ってチェックインすることはありません!

  • Python 文字列を印刷可能な文字に制限する (または厄介なエスケープを使用する) 必要はないため、可能であれば、人間が読めるパスワードではなく、任意のキーファイルを使用できます。人が入力しない場合、パスワードの弱点をすべて持つ理由はありません。

難読化するには、提案されているようにbase64を使用するか、XORingや別の場所に保存されている別のキーで復号化するなどの自家製スキームを使用して、両方の場所を調べる必要があります.これは日和見的なショルダー サーフィン以外のものからは保護しないことに注意してください (もしそうなら) - ある程度の本物があることを確認してください セキュリティも同様です (マシンへの物理的なアクセスなどの明白なものを含む!)


Linux
  1. ルートパスワードを変更するにはどうすればよいですか?

  2. Python 3.3.2のインストール?

  3. パスワードポリシーの管理

  1. Python2コードをPython3に変換する

  2. MySQLルートパスワードをリセットする

  3. サーバーパスワードをリセットする

  1. Samba V3.0でのパスワードの有効期限は?

  2. 方法:Pythonでのソケットプログラミング

  3. Windowsにpython-novaclientをインストールします