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实现在目录中查找指定文件的方法
Nov 11 Python
更改Ubuntu默认python版本的两种方法python-&gt; Anaconda
Dec 18 Python
Python中的__slots__示例详解
Jul 06 Python
解决Python print 输出文本显示 gbk 编码错误问题
Jul 13 Python
Django admin.py 在修改/添加表单界面显示额外字段的方法
Aug 22 Python
python实现图片二值化及灰度处理方式
Dec 07 Python
python错误调试及单元文档测试过程解析
Dec 19 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
Mar 02 Python
Python中有几个关键字
Jun 04 Python
pycharm2021激活码使用教程(永久激活亲测可用)
Mar 30 Python
Python道路车道线检测的实现
Jun 27 Python
Elasticsearch 基本查询和组合查询
Apr 19 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根据指定位置和长度获得子字符串的方法
2015/03/17 PHP
详解php设置session(过期、失效、有效期)
2015/11/12 PHP
WordPress中限制非管理员用户在文章后只能评论一次
2015/12/31 PHP
js模仿html5 placeholder适应于不支持的浏览器
2013/01/13 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
探讨javascript是不是面向对象的语言
2013/11/21 Javascript
js对文章内容进行分页示例代码
2014/03/05 Javascript
加载列表时jquery获取ul中第一个li的属性
2014/11/02 Javascript
JavaScript检查子字符串是否在字符串中的方法
2016/02/03 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
2017/12/25 Javascript
Angular6封装http请求的步骤详解
2018/08/13 Javascript
jQuery+ajax实现批量删除功能完整示例
2019/06/06 jQuery
laypage.js分页插件使用方法详解
2019/07/27 Javascript
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
[03:00]《DAC最前线》之欧美新秀VS老将
2015/02/01 DOTA
[42:52]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
Python 基础教程之闭包的使用方法
2017/09/29 Python
python实现对求解最长回文子串的动态规划算法
2018/06/02 Python
python实现内存监控系统
2021/03/07 Python
Python函数中不定长参数的写法
2019/02/13 Python
Python操作Sqlite正确实现方法解析
2020/02/05 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
2020/04/15 Python
pyqt5 textEdit、lineEdit操作的示例代码
2020/08/12 Python
区分python中的进程与线程
2020/08/13 Python
python爬虫使用scrapy注意事项
2020/11/23 Python
python如何调用php文件中的函数详解
2020/12/29 Python
animation和transition的区别
2020/10/12 HTML / CSS
Homestay中文官网:全球寄宿家庭
2018/10/18 全球购物
试述DBMS的主要功能
2016/11/13 面试题
农行实习自我鉴定
2013/09/22 职场文书
大学毕业生通用自我评价
2014/01/05 职场文书
工程承诺书怎么写
2014/05/24 职场文书
4s店销售经理岗位职责
2014/07/19 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang