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列表计数及插入实例
Dec 17 Python
python中pip的安装与使用教程
Aug 10 Python
Python os.rename() 重命名目录和文件的示例
Oct 25 Python
对Python 3.5拼接列表的新语法详解
Nov 08 Python
Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算
Dec 28 Python
Python OOP类中的几种函数或方法总结
Feb 22 Python
使用Python轻松完成垃圾分类(基于图像识别)
Jul 09 Python
Python爬虫 批量爬取下载抖音视频代码实例
Aug 16 Python
tornado+celery的简单使用详解
Dec 21 Python
PyQt5结合matplotlib绘图的实现示例
Sep 15 Python
如何判断pytorch是否支持GPU加速
Jun 01 Python
python可视化之颜色映射详解
Sep 15 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
DOTA2 探索永无止境 玩家自创强悍插眼攻略
2020/04/20 DOTA
通过5个php实例细致说明传值与传引用的区别
2012/08/08 PHP
php中删除、清空session的方式总结
2015/10/09 PHP
php中序列化与反序列化详解
2017/02/13 PHP
php实现网页端验证码功能
2017/07/11 PHP
jquery.cookie() 方法的使用(读取、写入、删除)
2013/12/05 Javascript
JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
2014/03/20 Javascript
jquery判断复选框是否被选中的方法
2015/10/16 Javascript
高性能JavaScript循环语句和条件语句
2016/01/20 Javascript
easyui 中的datagrid跨页勾选问题的实现方法
2017/01/18 Javascript
webpack3+React 的配置全解
2017/08/21 Javascript
jquery写出PC端轮播图实例
2018/01/26 jQuery
解决vue 项目引入字体图标报错、不显示等问题
2018/09/01 Javascript
jQuery实现的模仿雨滴下落动画效果
2018/12/11 jQuery
动态内存分配导致影响Javascript性能的问题
2018/12/18 Javascript
JS数组方法reduce的用法实例分析
2020/03/03 Javascript
JavaScript装饰者模式原理与用法实例详解
2020/03/09 Javascript
vue cli4.0项目引入typescript的方法
2020/07/17 Javascript
使用 Github Actions 自动部署 Angular 应用到 Github Pages的方法
2020/07/20 Javascript
Openlayers实现扩散的动态点(水纹效果)
2020/08/17 Javascript
小程序实现tab标签页
2020/11/16 Javascript
[37:21]完美世界DOTA2联赛PWL S2 Inki vs Magma 第二场 11.22
2020/11/24 DOTA
python处理中文编码和判断编码示例
2014/02/26 Python
理解python多线程(python多线程简明教程)
2014/06/09 Python
Python 正则表达式的高级用法
2016/12/04 Python
小白如何入门Python? 制作一个网站为例
2018/03/06 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
2019/10/21 Python
美国女性服饰销售网站:Nasty Gal(坏女孩)
2016/07/26 全球购物
全球摩托车装备领导者:RevZilla
2017/09/04 全球购物
FLOS美国官网:意大利高级照明工艺的传奇
2018/08/07 全球购物
交通安全标语
2014/06/06 职场文书
小学社会实践活动总结
2014/07/03 职场文书
争当四好少年演讲稿
2014/09/13 职场文书
2015年幼儿园学前班工作总结
2015/05/18 职场文书
2016小学优秀教师先进事迹材料
2016/02/26 职场文书
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers