解密 python base68 编码哈希时出现问题

Problems decrypting python base68 encoded hash

投反对票 = 没意识到这个问题是有效的 ;)

这行不通:

  t = 'iirFKe2rjTG96AUlUcQvDnGOZd2+W3faKUxTX9q6ttieOOZCXS068foIU4OsYorxMJF+vbT1bJf8\nOmDjOt872BOe3joDxgyW1klb7yMhSX0P/2C0yKQnOzVrmdQLLnJj6pB88/OqIUjYhGQdn2bpY0og\nZhRU5otxccubTo/CkNeykM0GLfKTUE+9VeywnZFYAmflnCcULOxnlAQNgmVKRPu6eSdfhiOR4LpJ\naRmxrUI6aA3VKwo59EjWhrJ/V3uLoVaETDtUG73wV1hJNG5g4nCYpt6CZxulWFt0nxH5dCta507I\nUYLEDEf2rCIHIKusY+ifJxWD67VJ8oJnhJE6cA==\n'
  u = decrypt('private_key', t)

但是这样做:

  u = decrypt('private_key', 'iirFKe2rjTG96AUlUcQvDnGOZd2+W3faKUxTX9q6ttieOOZCXS068foIU4OsYorxMJF+vbT1bJf8\nOmDjOt872BOe3joDxgyW1klb7yMhSX0P/2C0yKQnOzVrmdQLLnJj6pB88/OqIUjYhGQdn2bpY0og\nZhRU5otxccubTo/CkNeykM0GLfKTUE+9VeywnZFYAmflnCcULOxnlAQNgmVKRPu6eSdfhiOR4LpJ\naRmxrUI6aA3VKwo59EjWhrJ/V3uLoVaETDtUG73wV1hJNG5g4nCYpt6CZxulWFt0nxH5dCta507I\nUYLEDEf2rCIHIKusY+ifJxWD67VJ8oJnhJE6cA==\n')

我不明白为什么。我需要能够像第一个示例中那样在变量中传递数据。当我 print(t) 它给了我正确的数据。

我假设 '\' 破坏了一切,但我不知道如何修复它。

使用raw strings:

  t = r'iirFKe2rjTG96AUlUcQvDnGOZd2+W3faKUxTX9q6ttieOOZCXS068foIU4OsYorxMJF+vbT1bJf8\nOmDjOt872BOe3joDxgyW1klb7yMhSX0P/2C0yKQnOzVrmdQLLnJj6pB88/OqIUjYhGQdn2bpY0og\nZhRU5otxccubTo/CkNeykM0GLfKTUE+9VeywnZFYAmflnCcULOxnlAQNgmVKRPu6eSdfhiOR4LpJ\naRmxrUI6aA3VKwo59EjWhrJ/V3uLoVaETDtUG73wV1hJNG5g4nCYpt6CZxulWFt0nxH5dCta507I\nUYLEDEf2rCIHIKusY+ifJxWD67VJ8oJnhJE6cA==\n'
  u = decrypt('private_key', t)

字符不会被转义。

通过原始字符串:我的意思是将字母 rR 放在字符串之前。

这个堆栈溢出线程也值得一读:What exactly do "u" and "r" string flags do in Python, and what are raw string literals?

希望对您有所帮助。

幸运的是我找到了答案:)

t = 'string from question here'.decode('string_escape')

您可以通过执行 print(repr(t)) 而不是 print(t)

来发现问题所在