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 相关文章推荐
解决python3中自定义wsgi函数,make_server函数报错的问题
Nov 21 Python
python中for用来遍历range函数的方法
Jun 08 Python
pandas删除指定行详解
Apr 04 Python
python实现函数极小值
Jul 10 Python
Pytorch实现各种2d卷积示例
Dec 30 Python
Python如何使用字符打印照片
Jan 03 Python
win10系统下python3安装及pip换源和使用教程
Jan 06 Python
解决Tensorflow sess.run导致的内存溢出问题
Feb 05 Python
python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例
Feb 25 Python
Keras实现将两个模型连接到一起
May 23 Python
Python之Sklearn使用入门教程
Feb 19 Python
python绘制简单直方图(质量分布图)的方法
Apr 21 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
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
SSO单点登录的PHP实现方法(Laravel框架)
2016/03/23 PHP
24条货真价实的PHP代码优化技巧
2016/07/28 PHP
关于Laravel Route重定向的一个注意点
2017/01/16 PHP
PHP超全局变量实现原理及代码解析
2020/09/01 PHP
Javascript中的call()方法介绍
2015/03/15 Javascript
JavaScript正则表达式匹配 div  style标签
2016/03/15 Javascript
jQuery侧边栏实现代码
2016/05/06 Javascript
浅谈js中子页面父页面方法 变量相互调用
2016/08/04 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
关于Bootstrap按钮组件消除黄框的方法
2017/05/19 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
2017/06/30 Javascript
angularjs实现猜大小功能
2017/10/23 Javascript
微信小程序支付前端源码
2018/08/29 Javascript
vueScroll实现移动端下拉刷新、上拉加载
2019/03/22 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
2019/08/02 jQuery
Vue监听滚动实现锚点定位(双向)示例
2019/11/13 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
基于ajax实现上传图片代码示例解析
2020/12/03 Javascript
nodejs中使用worker_threads来创建新的线程的方法
2021/01/22 NodeJs
[01:28]2014DOTA2国际邀请赛中国区预选赛四大豪门直升机抵达会场
2014/05/24 DOTA
[04:04]DOTA2亚洲邀请赛比赛场馆&酒店全攻略
2017/03/23 DOTA
python zip文件 压缩
2008/12/24 Python
通过python下载FTP上的文件夹的实现代码
2013/02/10 Python
跟老齐学Python之集合的关系
2014/09/24 Python
python使用turtle绘制分形树
2018/06/22 Python
python使用matplotlib画饼状图
2018/09/25 Python
对Django url的几种使用方式详解
2019/08/06 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
大学同学十年聚会感言
2014/02/21 职场文书
企业宣传标语
2014/06/09 职场文书
个人典型事迹材料
2014/12/30 职场文书
见习期个人总结
2015/03/05 职场文书
四群教育工作总结
2015/08/10 职场文书
升学宴学生致辞
2015/09/29 职场文书
银行客户经理培训心得体会
2016/01/09 职场文书