技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機純凈版,64位旗艦版,綠色軟件,免費軟件下載基地!

當前位置:主頁 > 教程 > 服務(wù)器類 >

Python如何實現(xiàn)文本簡單可逆加密算法

來源:技術(shù)員聯(lián)盟┆發(fā)布時間:2017-10-07 06:07┆點擊:

  其實很簡單,就是把一段文本每個字符都通過某種方式改變(比如加1)

  這樣就實現(xiàn)了文本的加密操作,解密就是其逆運算

  # -*-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

  注意:

 ?、偃绻霈F(xiàn)中文編碼問題可以通過.encode,.decode編碼解碼

 ?、诳梢酝ㄟ^Python的切片操作處理文件名,很方便,例如: newfilename=filename[:num]+'[加密]'.encode('gbk')+filename[num:]

  ③最重要的!!本加密方法只是簡單的給文本字符做一個+password處理,其方法非常不合理,因為加的數(shù)如果過大會造成chr字節(jié)不夠(比如你輸一個1000)

  所以本代碼只適用于新手練習,而不能作為真正的處理算法