0

いくつかの資格情報を持っているファイルを保存しようとしています。ファイルにパスワードを明確に残さないために、pycryptoモジュールでパスワードを暗号化しました。しかし、結果文字列を使用してファイルを保存しようとすると、エラーが発生します。

  • 奇妙な文字を受け取ったため、最初にファイルをUTF-8として保存しました(# -*- coding: utf-8 -*-)
  • しかし、それでもいくつかの問題に直面します:(SyntaxError: EOL while scanning string literalたとえば文字列'tý}DŠÇ{÷­*6Ù·®'で)IDLEでF5を介してコードを実行すると(保存は問題ありません)。

この文字列はIDLEシェルで通常使用できることに注意してください。

>>> s = 'tý}DŠÇ{÷­*6Ù·®'
>>> s
't\xfd}\x7fD\x8a\xc7{\x17\xf7\xad*6\xd9\xb7\xae'
>>> 

手伝ってもらえますか?ありがとう !

編集:これは明確ではないかもしれません:この文字列はPythonプログラムにあり、外部ファイルに書き込もうとはしていません。もう1つ、エラーの原因と思われる文字( 16進数\x7f)がSOインタープリターによって削除されたようです。

4

2 に答える 2

2

16進数などの文字列形式を明示的に要求しない限り、暗号化されたデータを文字列として扱うべきではありません。ファイルはバイナリモードで開く必要があり、そのようなデータはコンソールに出力しないでください。

于 2012-06-21T08:57:28.547 に答える
0

代わりzlibに(実際の暗号化はありませんが、パスワードはクリアのままではありません)ASCII文字を生成するので、今は問題ありません...もちろん、最初の問題は解決しませんが、解決するのにすでに多くの時間を費やしました。答えてくれたIgnacioに感謝します。

于 2012-06-25T12:33:11.570 に答える