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指定路径寻找符合匹配模式文件
May 22 Python
Python制作简易注册登录系统
Dec 15 Python
解决seaborn在pycharm中绘图不出图的问题
May 24 Python
基于python指定包的安装路径方法
Oct 27 Python
python datetime中strptime用法详解
Aug 29 Python
python二分法查找算法实现方法【递归与非递归】
Dec 06 Python
Python进程Multiprocessing模块原理解析
Feb 28 Python
python环境下安装opencv库的方法
Mar 05 Python
面向新手解析python Beautiful Soup基本用法
Jul 11 Python
详解Django中异步任务之django-celery
Nov 05 Python
jupyter notebook快速入门及使用详解
Nov 13 Python
python3美化表格数据输出结果的实现代码
Apr 14 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
介绍几个array库的新函数 php
2006/12/29 PHP
通用PHP动态生成静态HTML网页的代码
2010/03/04 PHP
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
php常用的url处理函数总结
2014/11/19 PHP
php中base64_decode与base64_encode加密解密函数实例
2014/11/24 PHP
php页面缓存方法小结
2015/01/10 PHP
微信access_token的获取开发示例
2015/04/16 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
js 可拖动列表实现代码
2011/12/13 Javascript
nodejs入门详解(多篇文章结合)
2012/03/07 NodeJs
javascript检测两个数组是否相似
2015/05/19 Javascript
JS实现IE状态栏文字缩放效果代码
2015/10/24 Javascript
深入理解关于javascript中apply()和call()方法的区别
2016/04/12 Javascript
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
2018/10/08 Javascript
windows实现npm和cnpm安装步骤
2019/10/24 Javascript
Vue移动端实现图片上传及超过1M压缩上传
2019/12/23 Javascript
js实现滑动进度条效果
2020/08/21 Javascript
[00:34]TI7不朽珍藏III——纯金地穴编织者饰品展示
2017/07/15 DOTA
Python引用模块和查找模块路径
2016/03/17 Python
Python常用的内置序列结构(列表、元组、字典)学习笔记
2016/07/08 Python
浅析Python pandas模块输出每行中间省略号问题
2018/07/03 Python
Python发送邮件功能示例【使用QQ邮箱】
2018/12/04 Python
Pandas之Dropna滤除缺失数据的实现方法
2019/06/25 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
CSS3 box-shadow属性实例详解
2020/06/19 HTML / CSS
世界上最大的皮肤科医生拥有和经营的美容网站:LovelySkin
2021/01/03 全球购物
十佳大学生事迹材料
2014/01/29 职场文书
环境保护标语
2014/06/20 职场文书
司法局群众路线教育实践活动整改措施
2014/09/17 职场文书
班主任经验交流材料
2014/12/16 职场文书
2015年资料员工作总结
2015/04/25 职场文书
高老头读书笔记
2015/06/30 职场文书
团结友爱主题班会
2015/08/13 职场文书
redis 限制内存使用大小的实现
2021/05/08 Redis
使用pandas模块实现数据的标准化操作
2021/05/14 Python