python base64加密文本內容(2)

上面一篇簡單進行了base64加密安全

但安全係數很是低,只須要用網上的在線base64解碼就能破解函數

這裏咱們能夠本身修改一下base64加密後的字符串,在解碼的時候只須要先提早將修改的內容還原就能夠了編碼

上代碼:加密

 1 import base64
 2 import os
 3 
 4 def zidinyi1(load):
 5     #將base64加密的內容進行自定義
 6     #將全部‘u’替換爲‘#’ 'Y'替換爲‘~’
 7     #用到字符串的replace()函數
 8     #將base64加密的內容進行處理
 9     
10     with open(load) as f:
11         content=f.read()
12         
13     content1=content.replace("u",'#')
14     content2=content1.replace("Y",'~')
15     #這裏的content2是一個字符串類型,因此打開寫入方式是‘w’就夠了
16     
17     f=open(load, 'w')
18     f.write(content2)
19     f.close()
20     print("加密成功")
21 
22 def jiemi(load):
23     #將路徑文件解密
24     f=open(load,encoding='utf-8')
25     content=f.read()
26 
27     content1=base64.b64decode(content)
28     with open(load, 'wb+') as f:
29         f.write(content1)
30     print('解密成功')
31 
32 
33 def zidinyi2():
34     load=input('輸入解密的txt文件的路徑:')
35     #將替換的內容變過來,而後才調用jiemi()函數
36     with open(load) as f:
37         content=f.read()
38     content1=content.replace("#",'u')
39     content2=content1.replace("~",'Y')
40     #將替換後的正確base64碼寫入文本
41     f=open(load, 'w')
42     f.write(content2)
43     print(type(content2))
44     f.close()
45     #調用jiemi()函數
46     jiemi(load)
47 
48 def jiami():
49     load=input('輸入加密的txt文件的路徑:')
50     #將路徑文件加密保存
51     #對應utf-8的base64編碼
52     f=open(load,encoding='utf-8')
53     #這裏要使用‘utf-8’格式打開,不然會報錯
54     #注意在保存txt文件時也要採用utf-8格式保存
55     
56     content=f.read()
57     
58     content1=content.encode(encoding='utf-8')
59     content2=base64.b64encode(content1)
60   
61     #這一句,將字符串進行加密
62    
63     f.close()
64 
65     #下面以寫入的方式將content2寫入原文本,而且替換
66     with open(load, 'wb+') as f:
67     #以二進制的方式打開
68     #bytes類型數據須要以二進制形式打開寫入
69        f.write(content2)
70 
71     #調用zidinyi1()函數
72     zidinyi1(load)
73     
74 
75 def choice():
76     num=input('加密文本輸入1/解密文本輸入2:')
77     if num == '1':
78         jiami()
79     elif num == '2':
80         zidinyi2()
81     else:
82         print('輸入錯誤')
83 
84 
85 while 1==1:
86     
87     if __name__ == '__main__':
88         choice()
89     
90     

 看一下結果吧spa

這是原txt內容:code

我懂你的情,你懂個人心,只是在生活中,咱們不會再有任何的交集,我在城市這頭,而你卻在城市的另外一邊,咱們有着各自的悲喜,各自的生活,你聽,雨的聲音,滴滴答答在敲打在玻璃窗,很輕、很涼......blog

再也不聯繫,多麼傷感的詞彙,倒是不少人都面臨過或正在面臨的一個情境,想一想當初那麼艱難的去作決定,下定決心再也不聯繫的過程是有多麼煎熬,但是倒是最後的結局。不能在一塊兒,愛着,想着,卻不能再去聯繫,那種苦澀的滋味,只有當事人才能體會,給本身一個狠心的理由,心中就算是有無數個期盼的聲音,都僞裝聽不到。再也不聯繫,心倒是在煎熬,最痛的距離,不是聯繫不到對方,而是我知道你在線,你也知道我在線,卻說不出一句話,只能漸行漸遠,默默地承受這份寂寞的苦楚。utf-8

 

加密後:字符串

77#/5oiR5oeC5L2g55qE5oOF77yM5L2g5oeC5oiR55qE5b+D77yM5~+q5piv5Zyo55Sf5rS75Lit77yM5oiR5L#s5LiN5Lya5~aN5pyJ5L#75L2V55qE5Lqk6Z#G77yM5oiR5Zyo5Z+O5biC6L+Z5aS077yM6ICM5L2g5~205Zyo5Z+O5biC55qE5~+m5LiA6L6577yM5oiR5L#s5pyJ552A5ZCE6Ieq55qE5oKy5Zac77yM5ZCE6Ieq55qE55Sf5rS777yM5L2g5ZCs77yM6Z#o55qE5aOw6Z+z77yM5r#05r#0562U562U5Zyo5pWy5omT5Zyo546755KD56qX77yM5b6I6L2744CB5b6I5~eJLi4#Li4#Cgrk#I3lho3ogZTns7vvvIzlpJrk#~jkvKTmhJ/nmoTor43ms~fvvIzljbTmmK/lvojlpJrk#rrpg73pnaLk#LTov4fmiJbmraPlnKjpnaLk#LTnmoTk#IDk#Krmg4XlooPvvIzmg7Pmg7PlvZPliJ3pgqPk#~joibDpmr7nmoTljrvlgZrlhrPlrprvvIzk#IvlrprlhrPlv4Pk#I3lho3ogZTns7vnmoTov4fnqIvmmK/mnInlpJrk#~jnh~7nhqzvvIzlj6/mmK/ljbTmmK/mnIDlkI7nmoTn#5Pls~DjgILk#I3og73lnKjk#IDotbfvvIzniLHnn~DvvIzmg7Pnn~DvvIzljbTk#I3og73lho3ljrvogZTns7vvvIzpgqPnp43oi6bmtqnnmoTm#4vlkbPvvIzlj6rmnInlvZPk#ovk#rrmi~3og73kvZPkvJrvvIzn#5noh6rlt7Hk#IDk#Krni6Dlv4PnmoTnkIbnlLHvvIzlv4Pk#K3lsLHnrpfmmK/mnInml6DmlbDk#KrmnJ/nm7znmoTlo7Dpn7PvvIzpg73lg~foo4XlkKzk#I3liLDjgILk#I3lho3ogZTns7vvvIzlv4PljbTmmK/lnKjnh~7nhqzvvIzmnIDnl5vnmoTot53nprvvvIzk#I3mmK/ogZTns7vk#I3liLDlr7nmlrnvvIzogIzmmK/miJHnn6XpgZPkvaDlnKjn#r/vvIzkvaDk#Z/nn6XpgZPmiJHlnKjn#r/vvIzljbTor7Tk#I3lh7rk#IDlj6Xor53vvIzlj6rog73m#JDoo~zm#JDov5zvvIzp#5jp#5jlnLDmib/lj5fov5nk#73lr4Llr57nmoToi6bmpZrjgII=input

 

咱們使用在線base64解碼:

$y๯h9桹ữ#9/h9๢$y桹o໯#9iYʎyIkKK޻ȎhKⷒk有侹/ey桹.:dnȎhYʎY.ZKNȎ΋ڎvӖr~;⋞j一邊,我仹"y砹d!:!깦9e;d!:!깦9奼./h9d+;fyNZ;>ȎkӚ答答在敲打在玻璃窗,很輕、很墋⠨+再聯繫,多䎋ʎhIyNޫ36Ӛb#k都面䭺/Ṣ%hg*:gh NyNB情境,想一想當初那䎈NX뾘Xk>Z鮻ȎB/kϖ再聯繫的過程是有多䎸{3>b6ӚbrB;j屍࠹ވ;ޙʎB֟3"Ǟp,想眻cm9ވ;ޘhޘ뾈N{;Ȏ*>zxވnkjyNn/FϾ3>r'O䮹ވ;ދپKɮȎ~gއ䪹⨹o๦9䡹嬻o๊ޛ z龩iȞizi[Brnjæ~Ͼ3裝聽䣹b,8࠹ޘhވN{;Ȏ[>XێiYʎx{3r^oj޷ᄇ3是聯繫䣹b,9k{ #9+$y空`d/h9g*9뾻ȎKڎF~O"Gr,卻說䣹aX^޻ȎX;ޢC椺/緋#:ycrÚ&>_g寂寞的苦楚。

 

因此必須用咱們本身定義的解碼方式才能正確解碼。(over~)

 

 

 

知識點:

1,文本的打開與寫入

2,base64加密解密

3,  字符串中的元素的替換string.replace("old","new")

content2=base64.b64encode(content1)加密  content1=base64.b64decode(content)解密
相關文章
相關標籤/搜索