Python实现密钥密码(加解密)

本文介绍了使用Python实现密钥密码的过程,包括构造映射字典、密钥去重、加解密操作,并展示了程序入口及实际效果。适用于密码学和加密解密领域的学习者。
部署运行你感兴趣的模型镜像

密钥密码

在这里插入图片描述

'''
如密钥短语密码为: university -> universty
明文: abcdefghijklmnopqrstuvwxyz
密文:jklmopqwxzuniverstyabcdfgh
'''

构造映射字典

# 构造映射 asc ---> crypt
def dic(x):
    list_x =[]
    list_z = []
    for i in x:
        list_x.append(ord(i))
    for i in range(97,123):
        if i not in list_x:
            list_x.append(i)
    list_ = list_x[26-len(x)-1:]
    cr = list_+list_x[:26-len(list_)]
    for i in range(97,123):
        list_z.append(i)
    return dict(map(lambda x,y:[x,y],list_z,cr))


# 构造映射 crypt ---> asc
def dic_2(x):
    list_x =[]
    list_z = []
    for i in x:
        list_x.append(ord(i))
    for i in range(97,123):
        if i not in list_x:
            list_x.append(i)
    list_ = list_x[26-len(x)-1:]
    cr = list_+list_x[:26-len(list_)]
    for i in range(97,123):
        list_z.append(i)
    return dict(map(lambda x,y:[x,y],cr,list_z))

密钥去重

# 密钥去重
def remove(x):
    unique_x = []
    for i in x:
        if i not in unique_x:
            unique_x.append(i)
    return unique_x

加解密

# 加密
def encode():
    x = input('请输入密钥字符:')
    if not x.isalpha():
        print('请输入正确的密钥格式!')
        exit(0)
    s = input('请输入明文:')
    print('加密后字符:',end='')
    unique_x = remove(x)
    dic_ = dic(unique_x)
    for i in s:
        if i.isspace():
            print(' ', end='')
        else:
            print(chr(dic_[ord(i)]),end='')


# 解密
def decode():
    x = input('请输入密钥字符:')
    if not x.isalpha():
        print('请输入正确的密钥格式!')
        exit(0)
    s = input('请输入密文:')
    print('解密后字符:',end='')
    unique_x = remove(x)
    dic_ = dic_2(unique_x)
    for i in s:
        if i.isspace():
            print(' ',end='')
        else:
            print(chr(dic_[ord(i)]),end='')

程序入口

# 输入指令
answer = input(f'请输入所需的操作:编码/E or 解码/D:  ')
try:
    if answer.upper() == 'E':
        encode()
    elif answer.upper() == 'D':
        decode()
    else:
        print('输入错误!')
except KeyError:
    print('请正确输入小写字母!')

实现效果

注:可以输入空格
输出大小写:请自行修改

请输入所需的操作:编码/E or 解码/D:  e
请输入密钥字符:university
请输入明文:abcdefghijklmnopqrstuvwxyz
加密后字符:jklmopqwxzuniverstyabcdfgh
请输入所需的操作:编码/E or 解码/D:  d
请输入密钥字符:university
请输入密文:jklmopqwxzuniverstyabcdfgh
解密后字符:abcdefghijklmnopqrstuvwxyz

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值