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 相关文章推荐
Python Trie树实现字典排序
Mar 28 Python
Python生成随机密码的方法
Jun 16 Python
python的多重继承的理解
Aug 06 Python
Python3.6实现连接mysql或mariadb的方法分析
May 18 Python
Python实现正则表达式匹配任意的邮箱方法
Dec 20 Python
python删除列表元素的三种方法(remove,pop,del)
Jul 22 Python
Win10 安装PyCharm2019.1.1(图文教程)
Sep 29 Python
python 生成器和迭代器的原理解析
Oct 12 Python
pandas中遍历dataframe的每一个元素的实现
Oct 23 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
Nov 29 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
Jan 27 Python
全网非常详细的pytest配置文件
Jul 15 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
PDO::getAvailableDrivers讲解
2019/01/28 PHP
IE7中javascript操作CheckBox的checked=true不打勾的解决方法
2009/12/07 Javascript
javascript 实现字符串反转的三种方法
2013/11/23 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
Jquery实现地铁线路指示灯提示牌效果的方法
2015/03/02 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
2015/09/27 Javascript
js基础之DOM中document对象的常用属性方法详解
2016/10/28 Javascript
javascript动画之磁性吸附效果篇
2016/12/09 Javascript
JavaScript获取中英文混合字符串长度的方法示例
2017/02/04 Javascript
javascript 动态生成css代码的两种方法
2017/03/17 Javascript
Vue 单文件中的数据传递示例
2017/03/21 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
2017/04/12 Javascript
angular-cli修改端口号【angular2】
2017/04/19 Javascript
详解有关easyUI的拖动操作中droppable,draggable用法例子
2017/06/03 Javascript
JS学习笔记之原型链和利用原型实现继承详解
2019/05/29 Javascript
Python中还原JavaScript的escape函数编码后字符串的方法
2014/08/22 Python
利用Python抓取行政区划码的方法
2016/11/28 Python
Python探索之自定义实现线程池
2017/10/27 Python
Python自定义线程池实现方法分析
2018/02/07 Python
对pyqt5多线程正确的开启姿势详解
2019/06/14 Python
python射线法判断一个点在图形区域内外
2019/06/28 Python
pygame实现成语填空游戏
2019/10/29 Python
Python读写锁实现实现代码解析
2020/11/28 Python
css3实现文字扫光渐变动画效果的示例
2017/11/07 HTML / CSS
Sunglasses Shop英国:欧洲领先的太阳镜在线供应商之一
2018/09/19 全球购物
俄罗斯品牌服装和鞋子的在线商店:KUPIVIP
2019/10/27 全球购物
我想声明一个指针并为它分配一些空间, 但却不行。这些代码有什么 问题?char *p; *p = malloc(10);
2016/10/06 面试题
酒吧员工的岗位职责
2013/11/26 职场文书
优秀求职信范文分享
2013/12/19 职场文书
班级学习计划书
2014/04/27 职场文书
客户答谢会活动方案
2014/08/31 职场文书
个人务虚会发言材料
2014/10/20 职场文书
学前班幼儿评语大全
2014/12/29 职场文书
科级干部培训心得体会
2016/01/06 职场文书
Django cookie和session的应用场景及如何使用
2021/04/29 Python
Python 数据可视化神器Pyecharts绘制图像练习
2022/02/28 Python