当前位置:网站首页 > 资讯中心 > IT技术 >
Python如何实现文本简单可逆加密算法
发布日期:2017-07-05 所属分类:IT技术
;

   本文实例讲述了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)

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


本文章地址http://www.vzeo.com/news/xuetang/800779.html 由   友站网 编辑整理,转载请注明出处
推荐资讯