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


Posted in Python onApril 26, 2020

密钥密码

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

到此这篇关于Python实现密钥密码(加解密)的文章就介绍到这了,更多相关python 密钥密码内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python运行的17个时新手常见错误小结
Aug 07 Python
Python中的map、reduce和filter浅析
Apr 26 Python
使用Python的Twisted框架实现一个简单的服务器
Apr 16 Python
Python基于回溯法解决01背包问题实例
Dec 06 Python
基于循环神经网络(RNN)实现影评情感分类
Mar 26 Python
python实现旋转和水平翻转的方法
Oct 25 Python
详解python中TCP协议中的粘包问题
Mar 22 Python
详解DeBug Python神级工具PySnooper
Jul 03 Python
Tensorflow之梯度裁剪的实现示例
Mar 08 Python
Python读取配置文件(config.ini)以及写入配置文件
Apr 08 Python
Python基于locals返回作用域字典
Oct 17 Python
python 如何引入协程和原理分析
Nov 30 Python
Python基于QQ邮箱实现SSL发送
Apr 26 #Python
Eclipse配置python默认头过程图解
Apr 26 #Python
2020最新pycharm汉化安装(python工程狮亲测有效)
Apr 26 #Python
在服务器上安装python3.8.2环境的教程详解
Apr 26 #Python
Python ini文件常用操作方法解析
Apr 26 #Python
python实现音乐播放和下载小程序功能
Apr 26 #Python
使用Python内置模块与函数进行不同进制的数的转换
Apr 26 #Python
You might like
提升PHP执行速度全攻略(下)
2006/10/09 PHP
php面向对象全攻略 (十七) 自动加载类
2009/09/30 PHP
php获取目录所有文件并将结果保存到数组(实例)
2013/10/25 PHP
jQuery+php简单实现全选删除的方法
2016/11/28 PHP
总结AJAX相关JS代码片段和浏览器模型
2007/08/15 Javascript
检测是否已安装 .NET Framework 3.5的js脚本
2009/02/14 Javascript
Jquery replace 字符替换实现代码
2010/12/02 Javascript
一个简单的瀑布流效果(主体形式自写)
2013/05/27 Javascript
删除select中所有option选项jquery代码
2013/08/12 Javascript
js中的replace方法使用介绍
2013/10/28 Javascript
Jquery实现的角色左右选择特效
2014/05/21 Javascript
简单谈谈node.js 版本控制 nvm和 n
2015/10/15 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
2020/12/24 Javascript
快速使用Bootstrap搭建传送带
2016/05/06 Javascript
jQuery简单获取DIV和A标签元素位置的方法
2017/02/07 Javascript
利用node.js爬取指定排名网站的JS引用库详解
2017/07/25 Javascript
vue中如何实现pdf文件预览的方法
2018/07/12 Javascript
NodeJs 实现简单WebSocket即时通讯的示例代码
2019/08/05 NodeJs
python实现的一只从百度开始不断搜索的小爬虫
2013/08/13 Python
Django 创建新App及其常用命令的实现方法
2019/08/04 Python
使用matlab 判断两个矩阵是否相等的实例
2020/05/11 Python
Jmeter HTTPS接口测试证书导入过程图解
2020/07/22 Python
使用canvas一步步实现图片打码功能的方法
2019/06/17 HTML / CSS
KLOOK客路:发现更好玩的世界,预订独一无二的旅行体验
2016/12/16 全球购物
HelloFresh奥地利:立即订购烹饪盒
2019/02/22 全球购物
如何启动时不需输入用户名与密码
2014/05/09 面试题
"序列点" 是什么
2016/07/29 面试题
冰淇淋开店创业计划书
2014/02/01 职场文书
求职信需要的五点内容
2014/02/01 职场文书
《母鸡》教学反思
2014/02/25 职场文书
贷款担保申请书
2014/05/20 职场文书
个人安全承诺书
2014/05/22 职场文书
教师节倡议书
2014/08/30 职场文书
2014年向国旗敬礼活动总结
2014/09/27 职场文书
迎新生标语大全
2014/10/06 职场文书
pytorch 实现变分自动编码器的操作
2021/05/24 Python