调用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')