0

我正在尝试保存一个我有一些凭据的文件。为了不在文件中留下清晰的密码,我使用pycrypto模块对它们进行了加密。但是,当我尝试使用结果字符串保存文件时,出现错误:

  • 由于收到的奇怪字符,我第一次将文件保存为 UTF-8(# -*- coding: utf-8 -*-)
  • 但是我仍然面临一些问题:(SyntaxError: EOL while scanning string literal例如在 string 上'tý}DŠÇ{÷­*6Ù·®')当我在 IDLE 中通过 F5 运行我的代码时(可以保存)。

注意这个字符串可以在 IDLE shell 中正常使用:

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

你能帮忙吗?谢谢 !

编辑:这可能不清楚:这个字符串在 python 程序中,我不想把它写在外部文件中。另一件事:看起来似乎导致错误的字符(\x7f以十六进制表示)已被 SO 解释器删除。

4

2 回答 2

2

除非您明确要求字符串格式,例如十六进制数字,否则不应将加密数据视为字符串;文件应以二进制模式打开,此类数据不应打印到控制台。

于 2012-06-21T08:57:28.547 回答
0

zlib改用了(没有真正的加密,但密码不再清晰),它产生 ASCII 字符,所以现在没问题......当然这不能解决我最初的问题,但我已经花了太多时间试图解决它. 感谢伊格纳西奥的回答。

于 2012-06-25T12:33:11.570 回答