python base64加密文本内容(2)
上面一篇简单进行了base64加密
但安全系数非常低,只需要用网上的在线base64解码就能破解
这里我们可以自己修改一下base64加密后的字符串,在解码的时候只需要先提前将修改的内容还原就可以了
上代码:
import base64
import os def zidinyi1(load):
#将base64加密的内容进行自定义
#将所有‘u’替换为‘#’ 'Y'替换为‘~’
#用到字符串的replace()函数
#将base64加密的内容进行处理 with open(load) as f:
content=f.read() content1=content.replace("u",'#')
content2=content1.replace("Y",'~')
#这里的content2是一个字符串类型,所以打开写入方式是‘w’就够了 f=open(load, 'w')
f.write(content2)
f.close()
print("加密成功") def jiemi(load):
#将路径文件解密
f=open(load,encoding='utf-8')
content=f.read() content1=base64.b64decode(content)
with open(load, 'wb+') as f:
f.write(content1)
print('解密成功') def zidinyi2():
load=input('输入解密的txt文件的路径:')
#将替换的内容变过来,然后才调用jiemi()函数
with open(load) as f:
content=f.read()
content1=content.replace("#",'u')
content2=content1.replace("~",'Y')
#将替换后的正确base64码写入文本
f=open(load, 'w')
f.write(content2)
print(type(content2))
f.close()
#调用jiemi()函数
jiemi(load) def jiami():
load=input('输入加密的txt文件的路径:')
#将路径文件加密保存
#对应utf-8的base64编码
f=open(load,encoding='utf-8')
#这里要使用‘utf-8’格式打开,否则会报错
#注意在保存txt文件时也要采用utf-8格式保存 content=f.read() content1=content.encode(encoding='utf-8')
content2=base64.b64encode(content1) #这一句,将字符串进行加密 f.close() #下面以写入的方式将content2写入原文本,并且替换
with open(load, 'wb+') as f:
#以二进制的方式打开
#bytes类型数据需要以二进制形式打开写入
f.write(content2) #调用zidinyi1()函数
zidinyi1(load) def choice():
num=input('加密文本输入1/解密文本输入2:')
if num == '':
jiami()
elif num == '':
zidinyi2()
else:
print('输入错误') while 1==1: if __name__ == '__main__':
choice()
看一下结果吧
这是原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解码:
$yh9桹ữ#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*:ghNyNB情境,想想当初那䎈NX뾘Xk>Z鮻ȎB/kϖ再联系的过程是有多䎸{3>b6ӚbrB;j尸࠹ވ;ޙʎB֟3"Ǟp,想眻cm9ވ;ޘhޘ뾈N{;Ȏ*>zxވnkjyNn/FϾ3>r'O䮹ވ;ދپKɮȎ~gއ䪹⨹o9䡹嬻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,却说䣹aX^ȎX;ޢC椺/绯#:ycrÚ&>_g寂寞的苦楚。
所以必须用我们自己定义的解码方式才能正确解码。(over~)
知识点:
1,文本的打开与写入
2,base64加密解密
3, 字符串中的元素的替换string.replace("old","new")
content2=base64.b64encode(content1)加密 content1=base64.b64decode(content)解密
python base64加密文本内容(2)的更多相关文章
- python base64加密文本内容(1)
仅仅使用base64加密安全系数太低了,我们还可以自定义base64加密后的文本进行一些变化,提高安全系数,在解密时再回复某些变化 1,先实现一个base64加密 import base64 impo ...
- Python Base64转码解码
Python Base64 提供了好几种方法例如: encode, decode, encodestring, decodestring, b64encode, b64decode, standard ...
- Python 输出文件内容到网络端口
Python 输出文件内容到网络端口 $ cat mySocketTest.py import sys import time import socket if __name__ == "_ ...
- python base64 decode incorrect padding错误解决方法
个人觉得原因应该是不同的语言/base64库编码规则不太统一的问题. python中base64串的长度需为4的整数倍,故对长度不为4整数倍的base64串需要用"='补足 如下代码: da ...
- python base64 编解码,转换成Opencv,PIL.Image图片格式
二进制打开图片文件,base64编解码,转成Opencv格式: # coding: utf-8 import base64 import numpy as np import cv2 img_file ...
- python 修改文件内容
python 修改文件内容 一.修改原文件方式 1 def alter(file,old_str,new_str): 2 """ 3 替换文件中的字符串 4 :param ...
- Python并发编程内容回顾
Python并发编程内容回顾 并发编程小结 目录 • 一.到底什么是线程?什么是进程? • 二.Python多线程情况下: • 三.Python多进程的情况下: • 四.为什么有这把GIL锁? • 五 ...
- python 计算列表内容出现次数
"""python 计算列表内容出现次数""" #方法一: l = ['a','a','b','c','d','b','b','b'] te ...
- Python Base64 编码
0x00 Base64简介 0x01 常用场景举例 0x02 编.解码流程 0x03 Python中Base64编码与解码 0x00 Base64简介 我们知道在计算机中任何数据都是按ascii码存储 ...
随机推荐
- [http][ident] ident协议
读<http权威指南>提到了ident协议. 接受客户端连接 在这个步骤中,包括建立连接,这里Web服务器可以随意拒绝或立即关闭任意一条连接.客户端主机名解析部分,服务器可以用“反向DNS ...
- SoftPixelEngin
目的,拓展知识. 1.CMake夸平台构建; 2.RederSystem; 3.Shaderlibrary: http://blog.csdn.net/ym19860303/article/detai ...
- day4_修改文件
修改文件有两种方式:一种是把文件的全部内容都读到内存中,然后把原有的文件内容清空,重新写新的内容:第二种是把修改后的文件内容写到一个新的文件中 第一种:一次性把文件全部读到,读到内存这个能,这种文件小 ...
- 图->存储结构->数组表示法(邻接矩阵)
文字描述 用两个数组分别存储顶点信息和边/弧信息. 示意图 算法分析 构造一个采用邻接矩阵作存储结构.具有n个顶点和e条边的无向网(图)G的时间复杂度是(n*n + e*n), 其中对邻接矩阵G.ar ...
- MonkeyRunner_手机触摸屏幕坐标获取
坐标单位为像素,获取方式包括手机自带.画图软件和photoshop软件. 方式一.android4.0以上系统手机自带坐标功能,在设置->开发者选项->显示指针位置 方式二.画图或phot ...
- nodemcu使用心得1
1.简介 最近迷上了性价比超高的模块nodemcu,它是基于esp8266-12E的非常易用的模块.他可以用lua语言编程,带有丰富的库. 2.硬件 1)esp8266-12E单元模块原理图 经本人实 ...
- 那些年读过的书《Java并发编程的艺术》一、并发编程的挑战和并发机制的底层实现原理
一.并发编程的挑战 1.上下文切换 (1)上下文切换的问题 在处理器上提供了强大的并行性就使得程序的并发成为了可能.处理器通过给不同的线程分配不同的时间片以实现线程执行的自动调度和切换,实现了程序并行 ...
- 安装sqlserver2008中出现的问题小结
安装完sqlserver2008时报了几个错,但是好歹装上了,但是我想使用sa用户登录,给我出现了这么一个错 标题: 连接到服务器------------------------------ 无法连接 ...
- MyBatis的生命周期
MyBatis的生命周期 所谓的生命周期就是第一个对象应该存活的时间,比如一些对象一次用完后就要关闭,使它们被Java虚拟机(JVM)销毁,以避免继续占用资源,所以我们会根据每一个组件的作用去确定其生 ...
- RSA 时序攻击
RSA的破解从理论上来讲是大数质数分解,可是就是有一些人另辟蹊径,根据你解密的时间长短就能破解你的RSA私钥. 举一个不恰当但是比较容易理解的例子: 密文0101 私钥0110 明文0100 问题的关 ...