正文  电脑教程 > 服务器教程 >

Python如何实现文本简单可逆加密算法

  本文实例讲述了Python实现的文本简单可逆加密算法。分享给大家供大家参考,具体如下:   其实很简单,就是把一段文本每个字符都通过某种方式改变(...

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

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

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

  # -*-coding:utf-8 -*-

  import sys

  reload(sys)

  sys.setdefaultencoding(‘utf8‘)

  #加密

  def jiami():

  filename=raw_input(‘please input file: ‘)

  while True:

  try:

  password=int(raw_input(‘input number pass word: ‘))

  break

  except:

  print ‘please input number: ‘

  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: ‘)

  while True:

  try:

  password=int(raw_input(‘input number pass word: ‘))

  break

  except:

  print ‘please input number: ‘

  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为退出--- ‘.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)

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