Python#密码加密

输入由数字和字母组合的密码,并输入加密后的密码。加密规则为:先将数字按照顺序输出,字母按照倒序且大小写转换后输出。例如:输入为15ABC7,输出为157cba。

img

  您这是闹着玩儿的,因为这“加密算法”,好像实现不了解密。😀😀

思路:分步处理。1、顺序收集数字。2、倒序收集转小写的字母。

  • 代码
def encrypt(passwords):
    ''' 字符串加密 '''
    cryptograph = '' # 密文初值。
    
    for i in passwords: 

        if i.isdigit(): # 提取数字。
        #if i in list('0987654321'):
            cryptograph += i
    
    alpha = [] # 密码文本中的字母初值。
    for i in passwords: #提取字母。

        if not i.isdigit():
            alpha.append(i)

    alpha_s = '' # 密文字母初值。
    for i in alpha[:]: # 遍历字母列表副本。
        char = alpha.pop()
        
        if char.isupper():
            alpha_s += char.lower() # 小写字母转小写。
        elif char.islower():
            alpha_s += char.upper() # 大写字母转大写。
        else:
            alpha_s += char # 非字母保持原样倒序。

    return cryptograph + alpha_s


if __name__ == '__main__':
    passwords = input('\n请输入密码:')
    if not passwords: # 不输入默认15ABC7。
        passwords = '15ABC7'
    print('\n原文:', passwords)
    print('\n密文:', encrypt(passwords))

  • 代码运行效果截屏图片

    img


加密方法可以实现,解密则答案很多可能

def encryt(s):
    return ''.join([v for v in s if v in '0123456789'] + [v.lower() if ord(v) < 94 else v.upper() for v in s if v.lower() in 'abcdefghijklmnopqrstuvwxyz'][::-1])