如何使python同时加密大写和小写?

2024-09-30 10:38:36 发布

您现在位置:Python中文网/ 问答频道 /正文

基本上,我希望密码短语作为输出,大写和小写都被加密到小写,但没有任何空格或符号被加密。它可以加密一个包含所有大写字母的段落和一个包含所有小写字母的段落,但不能将两者混合起来。这是我所拥有的。在

def encrypt(phrase,move):
encription=[]
for character in phrase:
    a = ord(character)
    if a>64 and a<123:
        if a!=(91,96):
            for case in phrase:
                        if case.islower():
                            alph=["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"]
                            dic={}
                            for i in range(0,len(alph)):
                                dic[alph[i]]=alph[(i+move)%len(alph)] 
                                cipherphrase=""  
                            for l in phrase:  
                                if l in dic:  
                                    l=dic[l]  
                                cipherphrase+=l
                                encription.append(chr(a if 97<a<=122 else 96+a%122))
                            return cipherphrase
                        else:
                            ALPH=["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"]
                            DIC={}
                            for I in range(0,len(ALPH)):
                                DIC[ALPH[I]]=ALPH[(I+move)%len(ALPH)]
                                cipherphrase=""
                            for L in phrase:
                                if L in DIC:
                                    L=DIC[L]
                                cipherphrase+=L
                                encription.append(chr(a if 97<a<=122 else 96+a%122))
                            return cipherphrase

我知道很多,但正如你所见,我不是很好


Tags: informovelenifelse段落小写
2条回答
import string

def caesar_cipher(msg, shift):
    # create a character-translation table
    trans = dict(zip(string.lowercase, string.lowercase[shift:] + string.lowercase[:shift]))
    trans.update(zip(string.uppercase, string.uppercase[shift:] + string.uppercase[:shift]))

    # apply it to the message string
    return ''.join(trans.get(ch, ch) for ch in msg)

那么

^{pr2}$
import string
def rot_cipher(msg,amount):
    alphabet1 = string.ascii_lowercase + string.ascii_uppercase
    alphabet2 = string.ascii_lowercase[amount:] + string.ascii_lowercase[:amount]\
                + string.ascii_uppercase[amount:] + string.ascii_uppercase[:amount]
    tab = str.maketrans(alphabet1,alphabet2)
    return msg.translate(tab)

print(rot_cipher("hello world!",13))

相关问题 更多 >

    热门问题