blowfish
调用pycryptodome库中的blowfish模块,实现加密解密
#/usr/bin/Python
# -*- coding: utf-8 -*-
from Crypto.Cipher import Blowfish
import base64
class blowfish():
def __init__(self,key):
self.key = key.encode('utf-8')
if len(self.key)>=8:
self.iv = self.key[0:8]
else:
self.iv = self.key + ('\0' * (8 - len(self.key)))
self.mode = Blowfish.MODE_CBC
def set_key(self,new_key):
self.key = new_key.encode('utf-8')
if len(self.key) >= 8:
self.key = self.key[0:8]
else:
self.key = self.key + ('\0' * (8 - len(self.key)))
def encrypt(self,code):
l = len(code)
n = 8
if l % 8 != 0 :
code = code + '\0' * (8 - (l %8))
code = code.encode('utf-8')
cryptor = Blowfish.new(self.key,self.mode,self.iv)
encode = cryptor.encrypt(code)
return base64.encodebytes(encode)
def decode(self,encode):
cryptor = Blowfish.new(self.key, self.mode, self.iv)
code = cryptor.decrypt(base64.decodebytes(encode))
return (code.decode('utf-8')).rstrip('\0')
相关阅读
python之Django的入门08------事务管理、悲观锁、乐观
上一篇文章链接Django07我们接着上一篇文章的基础上,来继续了解进一步的Django框架一.事务管理在实际项目里,事务管理是一个很重要
最近迷上一拳超人,在xx动漫上看漫画时总是遇到各种网络问题,索性之间爬下来源码如下import requests, re from bs4 import Beautifu
目录 题目描述 输入/输出描述 解决思路 代码 代码走读 传送门 测试用例 1. 输入的数据都是整型 2. 输入的数据存在非法字符 题
Python product函数介绍 product(A,B)函数,返回A和B中的元素组成的笛卡尔积的元组,具体见如下代码:import itertools for item
异步编程 101:Python async await发展简史
本文参考了:How the heck does async/await work in Python 3.5? PEP 380: Syntax for Delegating to a Subgenerator yield 和 yi