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实现监控linux性能及进程消耗性能的方法
Jul 25 Python
Python中使用第三方库xlrd来读取Excel示例
Apr 05 Python
python实现爬取千万淘宝商品的方法
Jun 30 Python
python实现数据库跨服务器迁移
Apr 12 Python
pip install python 快速安装模块的教程图解
Oct 08 Python
python单例模式原理与创建方法实例分析
Oct 26 Python
python自动点赞功能的实现思路
Feb 26 Python
如何将PySpark导入Python的放实现(2种)
Apr 26 Python
Django权限设置及验证方式
May 13 Python
python中Django文件上传方法详解
Aug 05 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
Jan 21 Python
Python的collections模块真的很好用
Mar 01 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实现图片缩放功能类
2013/12/18 PHP
PHP数据对象PDO操作技巧小结
2016/09/27 PHP
javascript实现的动态文字变换
2007/07/28 Javascript
在chrome浏览器中,防止input[text]和textarea在聚焦时出现黄色边框的解决方法
2011/05/24 Javascript
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
2013/06/09 Javascript
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
javascript判断移动端访问设备并解析对应CSS的方法
2015/02/05 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
js跨域请求的5中解决方式
2015/07/02 Javascript
js中substring和substr两者区别和使用方法
2015/11/09 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
JavaScript 身份证号有效验证详解及实例代码
2016/10/20 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
jQuery EasyUI tree增加搜索功能的实现方法
2017/04/27 jQuery
webpack打包单页面如何引用的js
2017/06/07 Javascript
vue实现个人信息查看和密码修改功能
2018/05/06 Javascript
webpack打包react项目的实现方法
2018/06/21 Javascript
详解vue-property-decorator使用手册
2019/07/29 Javascript
Layui 解决表格异步调用后台分页的问题
2019/10/26 Javascript
Python Requests 基础入门
2016/04/07 Python
python之Socket网络编程详解
2016/09/29 Python
详解django三种文件下载方式
2018/04/06 Python
详解python中TCP协议中的粘包问题
2019/03/22 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
详解Python中打乱列表顺序random.shuffle()的使用方法
2019/11/11 Python
使用gunicorn部署django项目的问题
2020/12/30 Python
全球度假村:Club Med
2017/11/27 全球购物
劳资员岗位职责
2013/11/11 职场文书
公司拓展活动方案
2014/02/13 职场文书
劲霸男装广告词
2014/03/21 职场文书
关于运动会广播稿300字
2014/10/05 职场文书
安全生产月标语
2014/10/07 职场文书
银行安全保卫工作总结
2015/08/10 职场文书
导游词之无锡华莱坞
2019/12/02 职场文书
Pytorch中Softmax与LogSigmoid的对比分析
2021/06/05 Python