INI ファイルの値を暗号化する最良の方法は何ですか?
暗号化/復号化キーの使用??
電子メールのパスワードを持っている個人用スクリプトには、 TinyEncryptionを使用します。
コード自体にパスキーを入れます。これにより、カジュアルなスヌーパーが電子メールのパスワードを閲覧して取得するのを防ぐことができます。
コードも非常に単純です。これはPythonです。
import random
import base64
def tinycode(key, text, reverse=False):
"(de)crypt stuff"
rand = random.Random(key).randrange
if reverse:
text = base64.b64decode(text)
text = ''.join([chr(ord(elem)^rand(256)) for elem in text])
if not reverse:
text = base64.b64encode(text)
return text
セキュリティを強化するために、私はPGPを使用していますが、パスキーの入力を求める必要があります。完璧なセットアップはありません、それはあなたのニーズが何であるかに依存します。
どのような効果がありますか?何を保護または難読化しようとしていますか?
すべてのプラットフォームで利用可能な多くの双方向キー暗号化アルゴリズムの1つを使用できます...しかし、そもそもなぜそれを実行しているのかを自問してください。ハッキングに強いものを作成しようとしている場合、ini文字列を暗号化しても、iniを復号化するとすぐに文字列がメモリに保存されるため、それほど遠くはありません。そして、復号化するための鍵はあなたのプログラムにあります。ハックアウトするチャイルズプレイ。
設定を編集する人を簡単に止めたいだけの場合は、iniに入れないでください。ユーザーが編集するのに苦労するバイナリ形式を選択してください。
どのような目的で?安全?
プレーンテキストのパスワードを(たとえば)暗号化しようとしている場合は、おそらくPKIの実装を使用する必要があります。ただし、キー管理が問題になることを忘れないでください。iniファイルはローカルホストのファイルシステム上にある可能性が高いため、値を暗号化するだけでは万能薬ではありません。おそらく、キーペアを保存する必要があるのと同じ場所です。問題を単純に抽象化しただけです。彼らはあなたの暗号化されたパスワードを直接読むことはできませんが、あなたがあなたの鍵ペアを保存する場所を見つけることができれば、彼らはそれを彼ら自身で解読することができます。
キーを使用して標準の暗号化アルゴリズムを使用し、暗号化する前に値の前にランダムなパディングを付けることができます。
しかし、そのキーをどこに保存する予定ですか?または、ユーザーにパスワードを入力させ、そこからキーを取得させますか?そうでない場合は、値を暗号化することはかなり無意味です。
それも解読する必要がありますか?そうでない場合は、ソルトしてハッシュするだけです。
解読したい場合は、おそらく言語も指定する必要があると思います.
MD5 ハッシュ
次に、 hash("password") を ini_file.password ハッシュと比較します。