Python实现的文本简单可逆加密算法示例


Posted in Python onMay 18, 2017

本文实例讲述了Python实现的文本简单可逆加密算法。分享给大家供大家参考,具体如下:

其实很简单,就是把一段文本每个字符都通过某种方式改变(比如加1)

这样就实现了文本的加密操作,解密就是其逆运算

# -*-coding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf8')
#加密
def jiami():
  filename=raw_input('please input file:\n')
  while True:
    try:
      password=int(raw_input('input number pass word:\n'))
      break
    except:
      print 'please input number:\n'
  fileword=open(filename,'r')
  num=filename.rfind('.')
  newfilename=filename[:num]+'[加密]'.encode('gbk')+filename[num:]
  content=fileword.read(1)
  newfileword=open(newfilename,'a+')
  while len(content)>0:
    contentInt=ord(content)
    newContent=contentInt+password
    c=chr(newContent)
    newfileword.write(c)
    content=fileword.read(1)
  newfileword.close()
  fileword.close()
#解密
def jiemi():
  filename=raw_input('please input file:\n')
  while True:
    try:
      password=int(raw_input('input number pass word:\n'))
      break
    except:
      print 'please input number:\n'
  fileword=open(filename,'r')
  num=filename.rfind('.')
  num2=filename.rfind('[')
  newfilename=filename[:num2]+'[解密]'.encode('gbk')+filename[num:]
  content=fileword.read(1)
  newfileword=open(newfilename,'a+')
  while len(content)>0:
    contentInt=ord(content)
    newContent=contentInt-password
    c=chr(newContent)
    newfileword.write(c)
    content=fileword.read(1)
  newfileword.close()
  fileword.close()
while True:
  index=int(raw_input('---请输入命令,1为加密 2为解密 3为退出---\n'.encode('gbk')))
  if index==1:
    jiami()
  elif index==2:
    jiemi()
  elif index==3:
    exit(0)
else:
    pass

注意:

①如果出现中文编码问题可以通过.encode,.decode编码解码

②可以通过Python的切片操作处理文件名,很方便,例如: newfilename=filename[:num]+'[加密]'.encode('gbk')+filename[num:]

③最重要的!!本加密方法只是简单的给文本字符做一个+password处理,其方法非常不合理,因为加的数如果过大会造成chr字节不够(比如你输一个1000)

所以本代码只适用于新手练习,而不能作为真正的处理算法

Python 相关文章推荐
python3编写C/S网络程序实例教程
Aug 25 Python
python自动化测试实例解析
Sep 28 Python
python 的列表遍历删除实现代码
Apr 12 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 Python
详解Python自建logging模块
Jan 29 Python
Django学习笔记之ORM基础教程
Mar 27 Python
python实现ip代理池功能示例
Jul 05 Python
python config文件的读写操作示例
Sep 27 Python
Python数据存储之 h5py详解
Dec 26 Python
python_tkinter事件类型详情
Mar 20 Python
python中 .npy文件的读写操作实例
Apr 14 Python
Python+pyaudio实现音频控制示例详解
Jul 23 Python
Python操作MongoDB详解及实例
May 18 #Python
Python 迭代器与生成器实例详解
May 18 #Python
Python字符串处理实例详解
May 18 #Python
Python进阶-函数默认参数(详解)
May 18 #Python
Python装饰器实现几类验证功能做法实例
May 18 #Python
如何用itertools解决无序排列组合的问题
May 18 #Python
详解使用python的logging模块在stdout输出的两种方法
May 17 #Python
You might like
解决phpmyadmin中文乱码问题。。。
2007/01/18 PHP
php基于jquery的ajax技术传递json数据简单实例
2016/04/15 PHP
PHP实现Redis单据锁以及防止并发重复写入
2018/04/10 PHP
JQuery动态给table添加、删除行 改进版
2011/01/19 Javascript
JavaScript判断访问的来源是手机还是电脑,用的哪种浏览器
2013/12/12 Javascript
node.js入门教程迷你书、node.js入门web应用开发完全示例
2014/04/06 Javascript
JavaScript引用类型和基本类型详解
2016/01/06 Javascript
js获取时间精确到秒(年月日)
2016/03/16 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
JS实现图片放大缩小的方法
2017/02/15 Javascript
javaScript 逻辑运算符使用技巧整理
2017/05/03 Javascript
Vue表单类的父子组件数据传递示例
2018/05/03 Javascript
在Python中利用Pandas库处理大数据的简单介绍
2015/04/07 Python
Python文件和流(实例讲解)
2017/09/12 Python
Python多线程编程之多线程加锁操作示例
2018/09/06 Python
python实现本地图片转存并重命名的示例代码
2018/10/27 Python
在Pycharm中项目解释器与环境变量的设置方法
2018/10/29 Python
python中时间转换datetime和pd.to_datetime详析
2019/08/11 Python
Python魔术方法专题
2020/06/19 Python
Tensorflow与Keras自适应使用显存方式
2020/06/22 Python
HTML5 在canvas中绘制文本附效果图
2014/06/23 HTML / CSS
html5使用canvas绘制一张图片
2014/12/15 HTML / CSS
英国精品买手店:Browns Fashion
2016/09/29 全球购物
The Kooples美国官方网站:为情侣提供的法国当代时尚品牌
2019/01/03 全球购物
Carolina工作鞋官网:Carolina Footwear
2019/03/14 全球购物
英国办公家具网站:Furniture At Work
2019/10/07 全球购物
生物化工专业个人自荐信
2013/09/26 职场文书
幼儿园长自我鉴定
2013/10/17 职场文书
区长工作作风个人整改措施
2014/10/01 职场文书
幼儿园感恩节活动方案
2014/10/06 职场文书
拾金不昧感谢信
2015/01/21 职场文书
食品仓管员岗位职责
2015/04/01 职场文书
2016年暑期教师培训心得体会
2016/01/09 职场文书
学习习近平主席讲话心得体会
2016/01/20 职场文书
python学习之panda数据分析核心支持库
2021/05/07 Python
MySQL索引 高效获取数据的数据结构
2022/05/02 MySQL