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机器学习理论与实战(六)支持向量机
Jan 19 Python
python生成tensorflow输入输出的图像格式的方法
Feb 12 Python
python3爬取数据至mysql的方法
Jun 26 Python
python3实现猜数字游戏
Dec 07 Python
pytorch 加载(.pth)格式的模型实例
Aug 20 Python
给大家整理了19个pythonic的编程习惯(小结)
Sep 25 Python
Python Pickle 实现在同一个文件中序列化多个对象
Dec 30 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
Jan 16 Python
python 制作简单的音乐播放器
Nov 25 Python
Django使用echarts进行可视化展示的实践
Jun 10 Python
Pytest中skip和skipif的具体使用方法
Jun 30 Python
Anaconda配置各版本Pytorch的实现
Aug 07 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目录导航文件代码
2006/10/09 PHP
实用函数4
2007/11/08 PHP
PHP 年龄计算函数(精确到天)
2012/06/07 PHP
PHP连接MongoDB示例代码
2012/09/06 PHP
一些php项目中比较通用的php自建函数的详解
2013/06/06 PHP
php遍历文件夹所有文件子文件夹函数代码
2013/11/27 PHP
php实现微信原生支付(扫码支付)功能
2018/05/30 PHP
url 编码 js url传参中文乱码解决方案
2010/04/11 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
禁用JavaScript控制台调试的方法
2014/03/07 Javascript
jQuery实现流动虚线框的方法
2015/01/29 Javascript
js实现简单的联动菜单效果
2015/08/19 Javascript
jquery动态导航插件dynamicNav用法实例分析
2015/09/06 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
2015/10/23 Javascript
理解javascript中的MVC模式
2016/01/28 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
2017/01/06 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
浅谈react.js 之 批量添加与删除功能
2017/04/17 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
原生JS实现pc端轮播图效果
2020/12/21 Javascript
[05:35]DOTA2英雄梦之声_第13期_拉比克
2014/06/21 DOTA
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
[02:02:38]VG vs Mineski Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
python进阶教程之循环相关函数range、enumerate、zip
2014/08/30 Python
详解Django之auth模块(用户认证)
2018/04/17 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
python 协程中的迭代器,生成器原理及应用实例详解
2019/10/28 Python
HTML5 embed 标签使用方法介绍
2013/08/13 HTML / CSS
美国最大的宠物药店:1-800-PetMeds
2016/10/02 全球购物
美国大码时尚女装购物网站:ELOQUII
2017/12/28 全球购物
日本必酷网络直营店:Biccamera
2019/03/23 全球购物
商得四方公司面试题(gid+)
2014/04/30 面试题
银行门卫岗位职责
2013/12/29 职场文书
广告学专业求职信
2014/06/19 职场文书
优秀员工推荐材料
2014/12/20 职场文书
考勤制度通知
2015/04/25 职场文书