【发布时间】:2016-03-23 20:36:43
【问题描述】:
我必须制作一个替换密码程序,我首先创建一个随机密钥,然后使用该密钥解密/加密一些用户输入(明文)。问题的约束如下:
encryptMsg(明文、密钥、字母) 将明文字符串、字母字符串和密钥字符串作为参数并返回 加密的密码字符串。注意,在这个函数中,您必须首先将明文字符串转换为所有 小写并删除任何未出现在字母字符串中的标点符号/字符!
decryptMsg(密文、密钥、字母) 将获取一个密文字符串、一个字母字符串和一个密钥字符串并返回明文 字符串。
makeKey(字母) 通过随机打乱字母字符串中的字符生成并返回密钥字符串 争论。提示:这涉及使用 random.shuffle() 将字符串转换为列表 方法,然后将列表转回字符串
这是我所拥有的:
import random
alphabet = "'abcdefghijklmnopqrstuvwxyz.,!'"
def makeKey(alphabet):
alphabet= list(alphabet)
key= random.shuffle(alphabet)
alphabet= str(alphabet)
return key
def encrypt(plaintext, key, alphabet):
"""Encrypt the string and return the ciphertext"""
return ''.join(key[l] for l in plaintext)
print (alphabet)
我知道我在 makeKey 函数上做错了,因为它不起作用。我需要一些关于如何启动其他功能的帮助。我们不能使用字典,只能列出方法。任何关于在我的任务中快速启动我的帮助或建议将不胜感激。谢谢大家!
更新:示例输出如下:
字母:'abcdefghijklmnopqrstuvwxyz.,! '
密钥:'nu.t!iyvxqfl,bcjrodhkaew spzgm'
输入明文:嘿嘿,真好玩!
密文:'v! zmhvxdmxdmo!nll mikbg'
解密文本:“嘿,这真的很有趣!”
【问题讨论】:
-
你怎么知道它不起作用,你打电话了吗?此外,如果您想将其作为字符串取回,请使用
''.join(alphabet)而不是str(alphabet) -
你打算如何解密?
-
还没开始。这就是我的问题。我需要一些指导来解决这个问题? #NoviceProbs
-
@Joe 第二种方法对你有用吗?
标签: python