pytnon DES加密CBC模式
2015-07-18 14:05
393 查看
import pyDes
import base64
class Crypt(object):
@classmethod
def des_base64_encrypt(cls, text, key, iv, code='GBK'):
""" 基于DES和base64的加密算法
:param text 加密串
:param key des加密的密钥
:param iv des的向量
:param code text加密时的编码
"""
# 对text进行转码 --> GBK
text = text.decode('utf-8').encode(code)
des = pyDes.des(key, pyDes.CBC, iv, padmode=pyDes.PAD_PKCS5)
encrypt_text = des.encrypt(text)
return base64.encodestring(encrypt_text).strip()
@classmethod
def des_base64_decrypt(cls, text, key, iv, output_code='utf-8'):
""" 基于DES和base64的解密算法
:param text 解密的文本
:param key des加密的密钥
:param iv des的向量
:param output_code text解密后输出的编码
"""
des = pyDes.des(key, pyDes.CBC, iv, padmode=pyDes.PAD_PKCS5)
decode_text = des.decrypt(base64.decodestring(text))
decode_text = decode_text.decode('GBK').encode(output_code)
return decode_text
import base64
class Crypt(object):
@classmethod
def des_base64_encrypt(cls, text, key, iv, code='GBK'):
""" 基于DES和base64的加密算法
:param text 加密串
:param key des加密的密钥
:param iv des的向量
:param code text加密时的编码
"""
# 对text进行转码 --> GBK
text = text.decode('utf-8').encode(code)
des = pyDes.des(key, pyDes.CBC, iv, padmode=pyDes.PAD_PKCS5)
encrypt_text = des.encrypt(text)
return base64.encodestring(encrypt_text).strip()
@classmethod
def des_base64_decrypt(cls, text, key, iv, output_code='utf-8'):
""" 基于DES和base64的解密算法
:param text 解密的文本
:param key des加密的密钥
:param iv des的向量
:param output_code text解密后输出的编码
"""
des = pyDes.des(key, pyDes.CBC, iv, padmode=pyDes.PAD_PKCS5)
decode_text = des.decrypt(base64.decodestring(text))
decode_text = decode_text.decode('GBK').encode(output_code)
return decode_text
相关文章推荐
- 离散化+BFS HDOJ 4444 Walk
- 【Go语言】【15】GO语言的面向对象
- 【Go语言】【15】GO语言的面向对象
- Android开发者指南(6) —— AIDL
- Leetcode: Lowest Common Ancestor of a Binary Search Tree
- ScheduleFactory(不同scheduler name)
- jQuery之常用且重要方法梳理(siblings,nextAll,end,wrap,apply,call,each)-(二)
- 接Android外包
- jQuery对象和DOM对象,注意字体部分
- 图论之2-sat模板
- java新手笔记8 包
- ScheduleJobFactory
- hdu 2045 递推 不容易系列之(3)—— LELE的RPG难题
- 《App研发录》 源码
- 项目管理 BUG管理 —— 禅
- VS2008中关于“加载安装组件时遇到问题。取消安装”的解决
- bzoj 1012 维护一个单调数列
- JS高级程序设计11-DOM扩展
- Delphi 遍历所有目录和子目录下的文件名(可按后缀名遍历)
- ACboy needs your help again!(1702)