python 实现DES加密 ECB模式
2015-07-18 13:56
585 查看
# -*- coding:utf-8 -*-
import base64
import json
from Crypto.Cipher import DES
class Crypt(object):
"""加密和解密工具类"""
des_key = "12345678"
block_size = DES.block_size
pad_str = ['\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07', '\x08']
@classmethod
def des_base64_encrypt(cls, reqdata):
""" 基于DES和base64的加密算法
@:param reqdata 需要加密的请求数据
"""
key = cls.des_key
length = len(reqdata)
if length < cls.block_size:
add = cls.block_size - length
elif length > cls.block_size:
add = cls.block_size - (length % cls.block_size)
else:
add = 8
reqdata = reqdata + (cls.pad_str[add-1] * add)
des = DES.new(key, DES.MODE_ECB)
encrypt_data = des.encrypt(reqdata)
return base64.b64encode(encrypt_data)
@classmethod
def des_base64_decrypt(cls, retdata):
"""DES解密
@:param retdata: lakala reponse retData
"""
key = cls.des_key
debase64_data = base64.b64decode(retdata)
des = DES.new(key, DES.MODE_ECB)
decrypt_data = des.decrypt(debase64_data)
return decrypt_data
import base64
import json
from Crypto.Cipher import DES
class Crypt(object):
"""加密和解密工具类"""
des_key = "12345678"
block_size = DES.block_size
pad_str = ['\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07', '\x08']
@classmethod
def des_base64_encrypt(cls, reqdata):
""" 基于DES和base64的加密算法
@:param reqdata 需要加密的请求数据
"""
key = cls.des_key
length = len(reqdata)
if length < cls.block_size:
add = cls.block_size - length
elif length > cls.block_size:
add = cls.block_size - (length % cls.block_size)
else:
add = 8
reqdata = reqdata + (cls.pad_str[add-1] * add)
des = DES.new(key, DES.MODE_ECB)
encrypt_data = des.encrypt(reqdata)
return base64.b64encode(encrypt_data)
@classmethod
def des_base64_decrypt(cls, retdata):
"""DES解密
@:param retdata: lakala reponse retData
"""
key = cls.des_key
debase64_data = base64.b64decode(retdata)
des = DES.new(key, DES.MODE_ECB)
decrypt_data = des.decrypt(debase64_data)
return decrypt_data
相关文章推荐
- python Tkinter图形用户界面组件(鼠标、键盘事件)
- Python字典key值查询效率低的问题
- Python的Django框架中URLconf相关的一些技巧整理
- Python中的编码与解码(转)
- 同时安装使用Python 2.X和 Python 3.X
- python 多行注释
- 数据挖掘python,java
- 数据挖掘python,java
- Apriori
- python编写的自动获取代理IP列表的爬虫-chinaboywg-ChinaUnix博客
- Python第一个基本教程4章 词典: 当指数不工作时也
- Python文件读取切割
- 利用Dnspod api批量更新添加DNS解析【python脚本】 - 推酷
- python递归删除目录文件
- python:任意输入3个数,判断能否组成三角形
- Python3.4 tkinter GUI编程示例
- python深拷贝与浅拷贝
- python 移动指定目录下的txt文件到另外的目录
- Python的Django框架中URLconf相关的一些技巧整理
- Python通过正则表达式选取callback的方法