【问题标题】:How can I get the end result of my code to be an encrypted text? [closed]如何使我的代码的最终结果成为加密文本? [关闭]
【发布时间】:2019-08-30 14:12:47
【问题描述】:

我正在尝试从用户那里获取输入并使用字符串模块的方法,我想根据代码将输入转换为加密文本。

我已经尝试了 3 次相同的事情,但仍然收到错误消息: "ValueError: 前两个 maketrans 参数的长度必须相等"

虽然,在我的代码中,我已经检查了长度并且两者都相同。

我正在使用 Python 3.x

# Trial 3

import string

in_text = string.ascii_lowercase
out_text = (string.digits * 2) + string.digits[0:6]

print(len(in_text))
print(len(out_text))

translated_text = str.maketrans(usr_in, usr_out)

my_str = input().lower()
print(my_str.translate(translated_text))

我希望收到的结果是一个将 ascii 映射到数字的文本,并且每当我输入一个字符串时,我都会得到一个加密的输出。

【问题讨论】:

  • 你在哪里定义了 usr_in、usr_out?
  • 您在str.maketrans 调用中使用了错误的变量...

标签: python python-3.x string translate


【解决方案1】:

如果我理解正确,您想将较低的 ascii 映射到数字

你应该这样做

import string

in_text = string.ascii_lowercase
out_text = string.digits * 2 + string.digits[0: 6]

translated_text = str.maketrans(in_text, out_text)
my_str = input().lower()

print(my_str.translate(translated_text))

输出:

λ python3 s.py
hello, world
74114, 24713

【讨论】:

  • 但是,一旦代码被加密成数字,如果我试图从生成的数字中重新组成我输入的同一个句子,我就无法做到。
  • @AbhinandanSharma 当然你不能这样做,因为你将不同的字符映射到相同的数字......你的这种“加密”是不可逆的。
  • @Aran-Fey 感谢您的评论并让我知道答案。非常感谢您的回复。
猜你喜欢
  • 2013-04-22
  • 2013-07-28
  • 1970-01-01
  • 1970-01-01
  • 2011-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多