本文實例講述了Python實現(xiàn)的文本簡單可逆加密算法。分享給大家供大家參考,具體如下:
其實很簡單,就是把一段文本每個字符都通過某種方式改變(比如加1)
這樣就實現(xiàn)了文本的加密操作,解密就是其逆運算
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# -*-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 |
注意:
①如果出現(xiàn)中文編碼問題可以通過.encode,.decode編碼解碼
②可以通過Python的切片操作處理文件名,很方便,例如: newfilename=filename[:num]+'[加密]'.encode('gbk')+filename[num:]
③最重要的!!本加密方法只是簡單的給文本字符做一個+password處理,其方法非常不合理,因為加的數(shù)如果過大會造成chr字節(jié)不夠(比如你輸一個1000)
所以本代碼只適用于新手練習(xí),而不能作為真正的處理算法
希望本文所述對大家Python程序設(shè)計有所幫助。