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实现把回车符\r\n转换成\n
Apr 23 Python
python脚本设置超时机制系统时间的方法
Feb 21 Python
python 时间戳与格式化时间的转化实现代码
Mar 23 Python
Python实现简单过滤文本段的方法
May 24 Python
微信跳一跳辅助python代码实现
Jan 05 Python
python3爬取淘宝信息代码分析
Feb 10 Python
Python安装图文教程 Pycharm安装教程
Mar 27 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
May 21 Python
在Python 中同一个类两个函数间变量的调用方法
Jan 31 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
Jun 19 Python
django xadmin中form_layout添加字段显示方式
Mar 30 Python
浅谈keras中的keras.utils.to_categorical用法
Jul 02 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
优化NFR之一 --MSSQL Hello Buffer Overflow
2006/10/09 PHP
php获取当前网址url并替换参数或网址的方法
2010/06/06 PHP
PHP中4个加速、缓存扩展的区别和选用建议
2014/03/12 PHP
php微信公众号开发模式详解
2016/11/28 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
PHP实现PDO操作mysql存储过程示例
2019/02/13 PHP
详解PHP PDO简单教程
2019/05/28 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
2020/05/02 PHP
弹出窗口并且此窗口带有半透明的遮罩层效果
2014/03/13 Javascript
PHP+jQuery+Ajax+Mysql如何实现发表心情功能
2015/08/06 Javascript
JavaScript String 对象常用方法总结
2016/04/28 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
在DWR中实现直接获取一个JAVA类的返回值的两种方法
2016/12/25 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
JavaScript数组push方法使用注意事项
2017/10/30 Javascript
vue如何将v-for中的表格导出来
2018/05/07 Javascript
手动下载Chrome并解决puppeteer无法使用问题
2018/11/12 Javascript
6行代码实现微信小程序页面返回顶部效果
2018/12/28 Javascript
vue-cli配置全局sass、less变量的方法
2019/06/06 Javascript
Vue使用lodop实现打印小结
2019/07/06 Javascript
nodejs文件夹深层复制功能
2019/09/03 NodeJs
JS实现多选框的操作
2020/06/24 Javascript
详解vue中使用transition和animation的实例代码
2020/12/12 Vue.js
vue 数据操作相关总结
2020/12/17 Vue.js
解决python tkinter界面卡死的问题
2019/07/17 Python
pytorch 批次遍历数据集打印数据的例子
2019/12/30 Python
Python with语句用法原理详解
2020/07/03 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
HTML5的新特性(1)
2016/03/03 HTML / CSS
阿玛尼美国官方网站:Armani.com
2016/11/25 全球购物
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
奥地利购买珠宝和手表网站:ELLA JUWELEN
2019/09/03 全球购物
会计个人实习计划书
2014/08/15 职场文书
2015驻村干部工作总结
2015/04/07 职场文书
2019广播稿怎么写
2019/04/17 职场文书
浅析Python中的套接字编程
2021/06/22 Python