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下使用Txt2Html实现网页过滤代理的教程
Apr 11 Python
Python编程中time模块的一些关键用法解析
Jan 19 Python
python解决网站的反爬虫策略总结
Oct 26 Python
Python连接SQLServer2000的方法详解
Apr 19 Python
Python实现多线程抓取网页功能实例详解
Jun 08 Python
Python利用递归实现文件的复制方法
Oct 27 Python
Python实现的简单线性回归算法实例分析
Dec 26 Python
python实现的爬取电影下载链接功能示例
Aug 26 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
Jun 18 Python
Python生成并下载文件后端代码实例
Aug 31 Python
Django实现微信小程序支付的示例代码
Sep 03 Python
Python爬虫自动化爬取b站实时弹幕实例方法
Jan 26 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后台多用户权限组思路与实现程序代码分享
2012/02/13 PHP
PHP面向对象之旅:深入理解static变量与方法
2014/01/06 PHP
PHP连接sql server 2005环境配置及问题解决
2014/08/08 PHP
php通过文件流方式复制文件的方法
2015/03/13 PHP
PHP实现递归复制整个文件夹的类实例
2015/08/03 PHP
PHP函数nl2br()与自定义函数nl2p()换行用法分析
2016/04/02 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
2016/04/07 PHP
php微信公众平台开发(四)回复功能开发
2016/12/06 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
2017/01/16 PHP
详解CSS样式中的 !important * _ 符号
2021/03/09 HTML / CSS
基于jquery的商品展示放大镜
2010/08/07 Javascript
JS 屏蔽键盘不可用与鼠标右键不可用的方法
2013/11/18 Javascript
js setTimeout()函数介绍及应用以倒计时为例
2013/12/12 Javascript
Javascript核心读书有感之词法结构
2015/02/01 Javascript
Mac 安装 nodejs方法(图文详细步骤)
2017/10/30 NodeJs
使用Angular CLI进行单元测试和E2E测试的方法
2018/03/24 Javascript
vue打包之后生成一个配置文件修改接口的方法
2018/12/09 Javascript
使用puppeteer爬取网站并抓出404无效链接
2018/12/20 Javascript
js删除数组中某几项的方法总结
2019/01/16 Javascript
vue基于两个计算属性实现选中和全选功能示例
2019/02/08 Javascript
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
原生js实现弹幕效果
2020/11/29 Javascript
swiperjs实现导航与tab页的联动
2020/12/13 Javascript
python处理csv数据的方法
2015/03/11 Python
django模板语法学习之include示例详解
2017/12/17 Python
Python带动态参数功能的sqlite工具类
2018/05/26 Python
Python Threading 线程/互斥锁/死锁/GIL锁
2019/07/21 Python
如何使用Python抓取网页tag操作
2020/02/14 Python
详细分析Python collections工具库
2020/07/16 Python
matplotlib教程——强大的python作图工具库
2020/10/15 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
致短跑运动员广播稿
2014/01/09 职场文书
研究生考核个人自我鉴定
2014/03/27 职场文书
关于JavaScript 中 if包含逗号表达式
2021/11/27 Javascript
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL
Python sklearn分类决策树方法详解
2022/09/23 Python