必威体育Betway必威体育官网
当前位置:首页 > IT技术

python 3的Blowfish算法的实现

时间:2019-06-14 08:41:04来源:IT技术作者:seo实验室小编阅读:84次「手机版」
 

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框架一.事务管理在实际项目里,事务管理是一个很重要

python3爬虫爬取风之动漫漫画

最近迷上一拳超人,在xx动漫上看漫画时总是遇到各种网络问题,索性之间爬下来源码如下import requests, re from bs4 import Beautifu

Python实现求二阶行列式

目录 题目描述 输入/输出描述 解决思路 代码 代码走读 传送门 测试用例 1. 输入的数据都是整型 2. 输入的数据存在非法字符 题

Python product函数介绍

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

分享到:

栏目导航

推荐阅读

热门阅读