python实现简单加密解密机制


Posted in Python onMarch 19, 2019

本文使用python实现一个简单的加密解密机制。

描述:结合26个字母、以一个单词作为秘钥,使用python实现简单的加密解密机制

秘钥:大写的英文字符串

明文:包含空格、大小写字母、数字等的字符串

代码实现:

# -*- coding: utf-8 -*-
import os,sys 
reload(sys) 
sys.setdefaultencoding('utf8') 
import string
 
def suanfa(key):
  alp = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  jiami_key = {}
  jiemi_key = {}
 
  list0 = list(alp)
  list1 = list(key)
  list2 = list(alp)
  for n in list1:
    for m in list2:
      if m == n:
        list2.remove(m)
 
  alp1 = ''.join(list2)
  key1 = key + alp1
  list3 = list(key1)
 
  a = 0
  if a < len(list0):
    for m in list0:
      jiami_key[m] = list3[a]
      a = a + 1
  
  b = 0
  if b < len(list3):
    for n in list3:
      jiemi_key[n] = list0[b]
      b = b + 1
  
  #print jiami_key
  #print jiemi_key
  return jiami_key, jiemi_key 
 
def bianma(key_dic, data):
  list_data = list(data)
  data1 = []
  for a in list_data:
     if a == ' ':
       data1.append(a)
 
     elif a.islower():
       a = a.upper()
       if key_dic.has_key(a):
         x = key_dic[a]
         data1.append(x.lower())
 
     elif a.isupper():
       if key_dic.has_key(a):
         x = key_dic[a]
         data1.append(x)
     else:
       data1.append(a)
 
  data2 = ''.join(data1)
  #print data2
  return data2
 
def main():
  key = 'ZDFKJMNX'
  data = 'a bdcd sFDGDSGFDG113243 3'
  print "秘钥:" + key
  print "明文:" + data
 
  jiami_key, jiemi_key = suanfa(key)
  miwen = bianma(jiami_key, data)
  mingwen = bianma(jiemi_key, miwen)
 
  print "加密明文所得的密文:" + miwen
  print "解密密文所得的明文:" + mingwen
  return True
 
if __name__ == "__main__":
  main()

运行结果:

# python jiami.py 
秘钥:ZDFKJMNX
明文:a bdcd sFDGDSGFDG113243 3
加密明文所得的密文:z dkfk qMKNKQNMKN113243 3
解密密文所得的明文:a bdcd sFDGDSGFDG113243 3

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python加pyGame实现的简单拼图游戏实例
May 15 Python
python通过socket查询whois的方法
Jul 18 Python
在Python中的Django框架中进行字符串翻译
Jul 27 Python
python中import学习备忘笔记
Jan 24 Python
Python爬虫设置代理IP的方法(爬虫技巧)
Mar 04 Python
Python中栈、队列与优先级队列的实现方法
Jun 30 Python
python输出电脑上所有的串口名的方法
Jul 02 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
Mar 12 Python
在Keras中实现保存和加载权重及模型结构
Jun 15 Python
Python自动化xpath实现自动抢票抢货
Sep 19 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
Sep 25 Python
Python绘制分类图的方法
Apr 20 Python
python使用adbapi实现MySQL数据库的异步存储
Mar 19 #Python
python异步存储数据详解
Mar 19 #Python
利用Python半自动化生成Nessus报告的方法
Mar 19 #Python
python实现手机销售管理系统
Mar 19 #Python
Python使用修饰器进行异常日志记录操作示例
Mar 19 #Python
python学生管理系统学习笔记
Mar 19 #Python
Python操作rabbitMQ的示例代码
Mar 19 #Python
You might like
PHP自定义多进制的方法
2016/11/03 PHP
JavaScript入门之对象与JSON详解
2011/10/21 Javascript
为什么要在引入的css或者js文件后面加参数的详细讲解
2013/05/03 Javascript
JS+CSS 制作的超级简单的下拉菜单附图
2013/11/22 Javascript
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
2014/01/09 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
JS+CSS实现分类动态选择及移动功能效果代码
2015/10/19 Javascript
Bootstarp风格的toggle效果分享
2016/02/23 Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
2016/03/25 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
nodejs入门教程五:连接数据库的方法分析
2017/04/24 NodeJs
JS非空验证及邮箱验证的实例
2017/08/11 Javascript
基于ionic实现下拉刷新功能
2018/05/10 Javascript
JavaScript中import用法总结
2019/01/20 Javascript
p5.js实现动态图形临摹
2019/10/23 Javascript
vue 路由守卫(导航守卫)及其具体使用
2020/02/25 Javascript
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
2020/07/11 Javascript
[40:55]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#4Newbee VS Fnatic
2016/03/03 DOTA
tensorflow识别自己手写数字
2018/03/14 Python
python利用thrift服务读取hbase数据的方法
2018/12/27 Python
Python 私有属性和私有方法应用场景分析
2020/06/19 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
css3实现信纸/同学录效果的示例代码
2018/12/11 HTML / CSS
深入探究HTML5的History API
2015/07/09 HTML / CSS
Groupon比利时官方网站:特卖和网上购物高达-70%
2019/08/09 全球购物
MaBelle玛贝尔香港官网:香港钻饰连锁店
2019/09/09 全球购物
车间班长岗位职责
2013/11/30 职场文书
幼儿园中秋节活动方案
2014/02/06 职场文书
抄作业检讨书
2014/02/17 职场文书
学习雷锋活动总结
2014/04/29 职场文书
食品安全标语
2014/06/07 职场文书
大学社团招新的通讯稿
2014/09/10 职场文书
2016年优秀团员事迹材料
2016/02/25 职场文书
python使用pywinauto驱动微信客户端实现公众号爬虫
2021/05/19 Python