首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Caesar密码加密Python

Caesar密码加密Python
EN

Stack Overflow用户
提问于 2017-09-30 05:39:31
回答 1查看 1.1K关注 0票数 0

有人能告诉我为什么我的纯文本消息中只有一个字符需要加密吗?消息是“船在午夜启航”,加密密钥是4。我只能将t转换为x,消息的其余部分不打印。我遗漏了什么?

代码语言:javascript
复制
#request the message from the user
def InputMessage():
    PlainText = input("Enter the message you would like to encrypt: ")
    return PlainText

#encrypt the message
def CaesarShift(PlainText):

    #initialize variables
    alpha = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
    Key = int(input("Enter the encryption key: "))
    CipherText = ""

    #skip over spaces in the message
    for ch in PlainText:
        if ch == " ":
            pass
        else:

            #encrypt the message 
            index = alpha.index(ch)
            NewIndex = index + Key
            ShiftedCharacter = alpha[NewIndex]
            CipherText += ShiftedCharacter
        return CipherText


#main program start
def main():
    PlainText = InputMessage()
    CipherText = CaesarShift(PlainText)

    #print the encrypted message
    print("Encrypted message: " + CipherText)

#main program end
main()
EN

回答 1

Stack Overflow用户

发布于 2017-09-30 05:45:43

您的return语句在循环中,因此该函数仅在加密第一个字母后返回。

您需要确保return语句的缩进级别与for循环的缩进级别相同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46497251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档