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通过邮件服务器端口发送邮件的方法
Apr 30 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
May 07 Python
django js实现部分页面刷新的示例代码
May 28 Python
python文件拆分与重组实例
Dec 10 Python
django之使用celery-把耗时程序放到celery里面执行的方法
Jul 12 Python
Python替换月份为英文缩写的实现方法
Jul 15 Python
关于Python中的向量相加和numpy中的向量相加效率对比
Aug 26 Python
使用python实现哈希表、字典、集合操作
Dec 22 Python
Python递归及尾递归优化操作实例分析
Feb 01 Python
Python实现Wordcloud生成词云图的示例
Mar 30 Python
python+adb命令实现自动刷视频脚本案例
Apr 23 Python
Python txt文件如何转换成字典
Nov 03 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读取XML值的代码(推荐)
2011/01/01 PHP
PHP 数据结构 算法描述 冒泡排序 bubble sort
2011/07/10 PHP
手把手编写PHP框架 深入了解MVC运行流程
2016/09/19 PHP
PHP封装的分页类与简单用法示例
2019/02/25 PHP
JS日历 推荐
2006/12/03 Javascript
设置下载不需要倒计时cookie(倒计时代码)
2008/11/19 Javascript
使用非html5实现js板连连看游戏示例代码
2013/09/22 Javascript
调用jQuery滑出效果时闪烁的解决方法
2014/03/27 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
js实现网站最上边可关闭的浮动广告条代码
2015/09/04 Javascript
ajax与jsonp的区别及用法
2018/10/16 Javascript
JSON是什么?有哪些优点?JSON和XML的区别?
2019/04/29 Javascript
vue组件间通信六种方式(总结篇)
2019/05/15 Javascript
jQuery-Citys省市区三级菜单联动插件使用详解
2019/07/26 jQuery
Electron 调用命令行(cmd)
2019/09/23 Javascript
Vue extend的基本用法(实例详解)
2019/12/09 Javascript
在elementui中Notification组件添加点击事件实例
2020/11/11 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
举例讲解Python中的Null模式与桥接模式编程
2016/02/02 Python
python 类详解及简单实例
2017/03/24 Python
python+mongodb数据抓取详细介绍
2017/10/25 Python
python编写弹球游戏的实现代码
2018/03/12 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
2020/04/24 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
delegate与普通函数的区别
2014/01/22 面试题
家具厂厂长岗位职责
2014/01/01 职场文书
八年级音乐教学反思
2014/01/09 职场文书
中学生运动会入场词
2014/02/12 职场文书
节能宣传周活动总结
2014/05/08 职场文书
竞选班长演讲稿400字
2014/08/22 职场文书
优秀团支部申报材料
2014/12/26 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
2015年教师节感恩寄语
2015/03/23 职场文书
新年寄语2016
2015/08/17 职场文书
2019企业文化管理制度范本!
2019/08/06 职场文书