python des加密文件_python DES3 加密解密
背景:想给公司的进件流程写一套进件脚本,首先遇到的就是加密解密。公司用的 DES3 + base64 加密解密
一、安装 pycrypto模块,推荐用pycrypto编译文件,直接下载安装就行
http://www.voidspace.org.uk/python/modules.shtml#pycrypto
二、上代码,。此套代码是在 AES解密的基础上调整
#coding=utf-8
from Crypto.Cipher import _DES3 #加密解密方法
import base64
BS = _DES3.block_size
import json
import requests
def pad(s):
return s + (BS - len(s) % BS) * chr(BS - len(s) % BS)
#定义 padding 即 填充 为PKCS7
def unpad(s):
return s[0:-ord(s[-1])]
class prpcrypt():
def __init__(self, key):
self.key = key
self.mode = _DES3.MODE_CBC
self.iv = IV
# DES3的加密模式为CBC
def encrypt(self, text):
text = pad(text)
cryptor = _DES3.new(self.key, self.mode, self.iv)
#self.iv 为 IV 即偏移量
x = len(text) % 8
if x != 0:
text = text + '\0' * (8 - x) # 不满16,32,64位补0
# print(text)
self.ciphertext = cryptor.encrypt(text)
return base64.standard_b64encode(self.ciphertext).decode("utf-8")
def decrypt(self, text):
cryptor = _DES3.new(self.key, self.mode, self.iv)
de_text = base64.standard_b64decode(text)
plain_text = cryptor.decrypt(de_text)
# st = str(plain_text.decode("utf-8")).rstrip('\0')
# out = unpad(st)
# return out
#上面注释内容解密如果运行报错,就注释掉试试
return plain_text
if __name__ == '__main__':
iv = "******" #IV偏移量
pc = prpcrypt('******') # 自己设定的密钥
message = {"ARRAYDATA":
{"FACILITYID":"","FACILITYNAME":"","FACILITYTYPE":"","PASSWORD":"***","USERNO":"***"},
"TOKEN":"***",
}
js = json.dumps(message) #字典转str,再加密
print type(js)
e = pc.encrypt(js) # 加密内容
d = pc.decrypt(e) #解密内容
print e #加密后
print d #解密后
url = "***"
header = {"Content-Type":"application/x-www-form-urlencoded",
"Accept-Encoding": "gzip",
"User-Agent": "okhttp/3.8.0"}
message1 ={"message":e}
r = requests.post(url,headers=header,data=message1)
text1 = r.text
print text1
d1 = pc.decrypt(text1)
print d1
r = re.findall('\{(.+)\}',d1) #取值,对于返回值后面带有特殊字符,如空格、\等
d = eval("{"+r[0]+"}") #str转化成字典
token = d["ARRAYDATA"]["TOKEN"] #字典取值
print token
python des加密文件_python DES3 加密解密相关推荐
- python des加密文件_Python DES加密解密方法 pyDes库 兼容中文
单纯记录一下Python中DES加密解密的使用方式直接看代码: 依赖pyDes库安装> pip install pyDes 约定秘钥 python和java 加密和解密联调,兼容中文字符串 Py ...
- python的pyd文件_Python 加密之 生成pyd文件
混淆代码,我准备使用pyminifier.而加密处理,就比较麻烦. Python有py.pyc.pyw.pyo.pyd等文件格式. 其中,pyc是二进制文件.但很容易被反编译. pyw也不行,只是隐藏 ...
- Python实现对文件内容进行加密
目录 Small-fish文件加密库 1.加密 要加密文件内容 加密后内容 2.解密 1.代码讲解 字典 加密函数 解密函数 用Python实现对文件的内容进行加密,之前博主查询了资料看见的多半是Py ...
- linux密码加密文件,Linux下加密/解密及用密码保护文件的七把利器
加密是指对文件进行编码的过程,那样只有有权访问的人才可以访问文件.人类早在计算机还没有问世的时候就开始使用加密了.战争期间,人类会传输只有其部落或相关人员才能理解的某种信息. 作者:布加迪/编译来源: ...
- python读取pdf文件_python读取pdf文件
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 一.安装pdfminer3k模块?二. 读取pdf文件import sysimp ...
- 用python汇总pdf文件_Python处理PDF文件-简译与总结
最近看到一篇介绍Python中pyPDF模块的文章,详细介绍了使用pyPDF模块获取PDF文件信息,合并拆分PDF文件等功能.很方便,在此搬运分享以下: 全文介绍了以下几方面的功能 提取文件信息 旋转 ...
- python合并csv文件_PYTHON合并CSV文件的实践
最近尝试使用PYTHON处理CSV数据,由于CSV文件有好几个,需要提前拼接,然后再处理,因此遇到了PYTHON对文件进行合并的问题.此次尝试了两种方法:一是调用CMD命令处理:二是使用PYTHON写 ...
- python拆分合并文件_python实现文件的分割与合并
使用Python来进行文件的分割与合并是非常简单的. python代码如下: splitFile--将文件分割成大小为chunksize的块: mergeFile--将众多文件块合并成原来的文件: # ...
- python 流写入文件_python文件流操作
博主在学习python时对文件进行操作时经常踩一下坑.所以专门梳理了一下.有问题麻烦指出哈. python对于文件的操作我们一般是用open().我们根据python的源码可以看出.我们必须要传的参是 ...
最新文章
- usaco Ski Course Design
- ES mlockall作用——preventing that memory from being paged to the swap area
- 关于多人操作数据的处理策略
- uwsgi 的app变量名称必须为application
- CentOS6.9中使用yum install时提示:Cannot find a valid baseurl for repo: centos-sclo-rh
- PAT_B_1085_Java(25分)
- 使用ABBYY FineReader进行自动图像预处理
- 1024程序员节来啦!!.NET技术圈独家优惠劵,折后再折,赶紧来抢啊
- Source Insight 教程
- 博弈论 —— python
- 透过一个编译报错,总结两个Go程序编译的重要知识
- c语言追加字符串_Redis源码解析二--简单动态字符串
- Quoit Design
- 锐捷服务器端口映射教程,锐捷路由器端口映射,路由器端口映射
- 周鸿祎——互联网业界的“搅局者”
- python版webpower的edm的api接口
- php speex,将微信jssdk录制的speex高清音频转换为wav/mp3
- WebGoat8 M17 Password Reset 密码重置 答案、思路、题解
- 北京大学计算机考研资料汇总
- 故宫夜景门票最高炒至9999元 官方:二手票难以入场
热门文章
- ECSHOP商城网站建设之自定义调用广告方法(二)
- C++ 中dynamic_castlt;gt;的用法
- hibernate 之HQL查询实例
- 另类网页设计:30个复古怀旧风格的网站作品
- 解决listview addheader EditText焦点问题
- (推荐)(提供下载)ORACLE常见问题一千问(不怕学不成、就怕心不诚!)
- 保持 Go 模块兼容
- C++构造函数与析构函数调用虚函数的注意事项
- 新手C#面向对象的学习2018.08.06
- jQuery.获取子节点