技术员联盟提供win764位系统下载,win10,win7,xp,装机纯净版,64位旗舰版,绿色软件,免费软件下载基地!

当前位置:主页 > 教程 > 服务器类 >

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

来源:技术员联盟┆发布时间:2017-10-07 06:07┆点击:

  其实很简单,就是把一段文本每个字符都通过某种方式改变(比如加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)

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