-2

スクリプトを使用して、ユーザー インタラクションを含む毎日のメール (Gmail のみ) を送信します。彼らの電子メールをプレーン テキスト ファイルでハード ドライブに保存したいと考えています。それを行う正しい方法は何ですか?

  • 電子メールのパスワードを保護するためにユーザーにパスワードを要求する方法があることは知っていますが、ユーザーは電子メールが送信されるたびに新しいパスワードを入力する必要があるため、この方法は無意味です。代わりにパスワード。

  • もう 1 つの方法は、パスワードを暗号化し、コンピューター名 + ユーザー名 + システム +... などの特定の情報を組み合わせたキーを使用し、この同じキーを使用して暗号化されたパスワードを解読することです。これに関する問題は、逆コンパイルが容易なAutoitを使用しているため、潜在的な攻撃者が暗号化されたパスワードを取得した場合、理論的には暗号化キーを知ることができるため、パスワードの暗号化に使用する一意の情報が誰であるかは関係ありません。彼らはとにかくそれを手に入れることができました。

  • 別の方法は、Gmail に OAuth を使用することです。そのため、ユーザーはパスワードをまったく入力する必要はありませんが、私はそれを行うことができません。

何か案は ?

4

3 に答える 3

3

あなたは Windows でプログラミングしているので、Windows API を調べて暗号化作業を行うことをお勧めします。異なる仮定 (例: TPM) を行うつもりがないと仮定すると、おそらく自分で発明したものよりも優れていると信じることができます。

Win8 では、その OS をターゲットにしたい場合は、PasswordVault クラスがあります。<=Win7 では、DPAPI と Credential Manager があります。

これは GMail 固有のものではありません... これは一般的な「Windows に安全に保存する」という種類のアドバイスです。あなたが追求すべきより良いgmail固有の方法(例:サービス固有の資格情報)があるかもしれません. しかし、それを行ったとしても、これはクライアント OS に保存するためのより良い方法です。

于 2012-09-12T19:44:34.227 に答える
2

エリックが述べたように、Windowsを使用している場合はDPAPIが最適です。http://msdn.microsoft.com/en-us/library/ms995355.aspx 関数CryptProtectData()は、その特定のユーザーのWindowsログオン情報を使用してデータを暗号化し、システム上の他のユーザーがプレーンテキストを解読できないようにします。あなたが保存します。

于 2012-09-14T14:59:28.307 に答える
-1

AutoIt には、これに使用する _Crypt...() 関数があります。@computername または @username をハッシュし、そのハッシュを _Crypt_DeriveKey() 関数のキーとして使用して、パスワードの使用法をローカライズできます。次に、キーを使用して _Crypt_EncryptData() に渡し、パスワード文字列をデータとしてターゲットにします。暗号化されたキーをプレーン テキスト ファイルに保存します。

コールバックするときは、ファイルを読み取り、_Crypt_DeriveKey() でキーを再度作成してから、_Crypt_DecryptData() で復号化します。後者の関数の出力はパスワードである必要があります。

Crypt.au3 は、暗号化に WinAPI 関数を利用します。

于 2012-09-20T19:13:04.233 に答える