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 MySQLdb模块连接操作mysql数据库实例
Apr 08 Python
Python如何实现MySQL实例初始化详解
Nov 06 Python
python实现用户答题功能
Jan 17 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
Jun 23 Python
使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)
May 28 Python
python实现批量修改服务器密码的方法
Aug 13 Python
Python 类属性与实例属性,类对象与实例对象用法分析
Sep 20 Python
在Python中使用filter去除列表中值为假及空字符串的例子
Nov 18 Python
Python 矩阵转置的几种方法小结
Dec 02 Python
浅谈Python线程的同步互斥与死锁
Mar 22 Python
Python使用jupyter notebook查看ipynb文件过程解析
Jun 02 Python
关于的python五子棋的算法
May 02 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
php 安全过滤函数代码
2011/05/07 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
2014/07/29 PHP
php模仿asp Application对象在线人数统计实现方法
2015/01/04 PHP
PHP数据库操作Helper类完整实例
2016/05/11 PHP
thinkphp3.x中display方法及show方法的用法实例
2016/05/19 PHP
老生常谈PHP面向对象之注册表模式
2017/05/26 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
PHP 扩展Memcached命令用法实例总结
2020/06/04 PHP
HTML5附件拖拽上传drop & google.gears实现代码
2011/04/28 Javascript
JS正则中的RegExp对象对象
2012/11/07 Javascript
Javascript异步编程的4种方法让你写出更出色的程序
2013/01/17 Javascript
微信支付 JS API支付接口详解
2016/07/11 Javascript
C#微信小程序服务端获取用户解密信息实例代码
2017/03/10 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
2017/07/12 jQuery
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
vue实现tab切换外加样式切换方法
2018/03/16 Javascript
JavaScript 日期时间选择器一些小结
2018/04/02 Javascript
利用jsonp解决js读取本地json跨域的问题
2018/12/11 Javascript
Nodejs异步流程框架async的方法
2019/06/07 NodeJs
vue-router两种模式区别及使用注意事项详解
2019/08/01 Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
2020/08/04 Javascript
关于element-ui表单中限制输入纯数字的解决方式
2020/09/08 Javascript
用webAPI实现图片放大镜效果
2020/11/23 Javascript
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
2020/01/10 Python
pytorch模型预测结果与ndarray互转方式
2020/01/15 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
使用Python爬虫爬取小红书完完整整的全过程
2021/01/19 Python
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
培训讲师邀请函
2014/01/10 职场文书
大学信息公开实施方案
2014/03/09 职场文书
企业活动策划方案
2014/06/02 职场文书
九九重阳节致辞
2015/07/31 职场文书
帮你提高开发效率的JavaScript20个技巧
2021/06/18 Javascript
OpenCV项目实践之停车场车位实时检测
2022/04/11 Python