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迭代器与生成器用法实例分析
Jul 09 Python
Python单向链表和双向链表原理与用法实例详解
Aug 31 Python
Python datetime和unix时间戳之间相互转换的讲解
Apr 01 Python
windows上安装python3教程以及环境变量配置详解
Jul 18 Python
Django Rest framework频率原理与限制
Jul 26 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
Sep 18 Python
Python3如何对urllib和urllib2进行重构
Nov 25 Python
PyCharm下载和安装详细步骤
Dec 17 Python
python3用urllib抓取贴吧邮箱和QQ实例
Mar 10 Python
Python内置方法和属性应用:反射和单例(推荐)
Jun 19 Python
Django视图、传参和forms验证操作
Jul 15 Python
cookies应对python反爬虫知识点详解
Nov 25 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 将bmp图片转为jpg等其他任意格式的图片
2009/06/29 PHP
浅析Mysql 数据回滚错误的解决方法
2013/08/05 PHP
php屏蔽错误及提示的方法
2020/05/10 PHP
web页面数据展示新想法(json)
2010/06/08 Javascript
JS高级拖动技术 setCapture,releaseCapture
2011/07/31 Javascript
利用JS判断用户是否上网(连接网络)
2013/12/23 Javascript
jquery.post用法关于type设置问题补充
2014/01/03 Javascript
node.js中的buffer.toString方法使用说明
2014/12/14 Javascript
jQuery实现简单的列表式导航菜单效果代码
2015/08/31 Javascript
jQuery实现的自定义滚动条实例详解
2016/09/20 Javascript
微信小程序  modal详解及实例代码
2016/11/09 Javascript
Angular2使用vscode断点调试ts文件的方法
2017/12/13 Javascript
Vue.js组件间的循环引用方法示例
2017/12/27 Javascript
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
JavaScript使用ul中li标签实现删除效果
2019/04/15 Javascript
在Vue中用canvas实现二维码和图片合成海报的方法
2019/06/10 Javascript
微信小程序wxs实现吸顶效果
2020/01/08 Javascript
微信小程序保持session会话的方法
2020/03/20 Javascript
Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解
2020/03/29 Javascript
支付宝小程序实现省市区三级联动
2020/06/21 Javascript
利用Python的Django框架中的ORM建立查询API
2015/04/20 Python
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
Python获取央视节目单的实现代码
2015/07/25 Python
PyQt5固定窗口大小的方法
2019/06/18 Python
pytorch实现seq2seq时对loss进行mask的方式
2020/02/18 Python
python list的index()和find()的实现
2020/11/16 Python
html5在移动端的屏幕适应问题示例探讨
2014/06/15 HTML / CSS
世界上最大的网络主机公司:1&1
2016/10/12 全球购物
美国男士内衣品牌:Tommy John
2017/12/22 全球购物
英国川宁茶官方网站:Twinings茶
2019/05/21 全球购物
c++工程师面试问题
2013/08/04 面试题
私有程序集与共享程序集有什么区别
2013/04/05 面试题
应届毕业生专业个人求职自荐信格式
2013/11/20 职场文书
小学教师管理制度
2014/01/18 职场文书
周一给客户的问候语
2015/11/10 职场文书
SQL SERVER中常用日期函数的具体使用
2021/04/08 SQL Server