• 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     

     看一下结果吧

    这是原txt内容:

    我懂你的情,你懂我的心,只是在生活中,我们不会再有任何的交集,我在城市这头,而你却在城市的另一边,我们有着各自的悲喜,各自的生活,你听,雨的声音,滴滴答答在敲打在玻璃窗,很轻、很凉......

    不再联系,多么伤感的词汇,却是很多人都面临过或正在面临的一个情境,想想当初那么艰难的去做决定,下定决心不再联系的过程是有多么煎熬,可是却是最后的结局。不能在一起,爱着,想着,却不能再去联系,那种苦涩的滋味,只有当事人才能体会,给自己一个狠心的理由,心中就算是有无数个期盼的声音,都假装听不到。不再联系,心却是在煎熬,最痛的距离,不是联系不到对方,而是我知道你在线,你也知道我在线,却说不出一句话,只能渐行渐远,默默地承受这份寂寞的苦楚。

    加密后:

    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=

    我们使用在线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)解密


  • 相关阅读:
    闭包_使用闭包
    闭包_理解闭包
    将视图直接转换成表的SQL语句
    基于先电的openstack云平台部署(IaaS 平台构建)
    Python替换掉列表的 和空格
    SQL语句生成一句话
    Clean-blog移植—博客园美化
    只是条咸鱼罢了
    基础平台-项目管理+组织管理心得
    关于springboot配置文件的一些心得
  • 原文地址:https://www.cnblogs.com/jjj-fly/p/6872372.html
Copyright © 2020-2023  润新知