【问题标题】:base 64 ( GNU/Linux vs python ) [duplicate]base 64(GNU/Linux vs python)[重复]
【发布时间】:2019-01-10 11:52:26
【问题描述】:

在 linux 上,我可以使用命令“base64”来编码字符串或“python -m base64 -e”,它们具有相同的输出,但在 python shell 中,当我使用 base64 时,我有不同的输出。

#Linux promt

Command : echo 'HelloWorld' | base64

Output  : SGVsbG9Xb3JsZAo=

Command : echo 'HelloWorld' | python -m base64 -e

Output  : SGVsbG9Xb3JsZAo=

--== python内部==--

import base64

word = "HelloWorld".encode()
new_word = base64.b64encode(word)
print(word)
print(new_word)

输出:

b'HelloWord'
b'SGVsbG9Xb3JsZA=='

我能做什么?为什么会这样? 谢谢大家。

已解决:

为什么会这样:

因为 echo 将“\n”放在字符串的末尾。

【问题讨论】:

  • 嗯,word = "DaviMello".encode()?不应该是HelloWorld吗?
  • 回显添加\n
  • 您所说的命令不是 Linux 的一部分。 Linux 只是内核,因此大多数发行版使用的最常见的内核和工具组合称为 GNU/Linux。 base64 来自 GNU 部分。 details
  • 谢谢大家,@Aran-Fey 是的,我想念我将修复的示例;
  • @KlausD。谢谢,我下次会做的。 :)

标签: python linux python-3.x python-2.7


【解决方案1】:

你忘了echo 输出换行符。

$ echo -n 'HelloWorld' | base64
SGVsbG9Xb3JsZA==

【讨论】:

  • 感谢您的回答。解决了我的问题。
猜你喜欢
  • 2018-11-17
  • 1970-01-01
  • 2011-05-02
  • 2015-10-17
  • 1970-01-01
  • 1970-01-01
  • 2018-05-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多