from Crypto.Cipher import AES加密解密

一、代码

from Crypto.Cipher import AES
import base64
"""
AES加密算法
"""
#加密
def encryt(str, key):
    BS = AES.block_size
    pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)
    cipher = AES.new(key, AES.MODE_ECB,str)
    msg = cipher.encrypt(pad(str))
    msg = base64.encodestring(msg)
    return msg

#解密
def decrypt(enStr, key):
    unpad = lambda s: s[0:-ord(s[-1])]
    cipher = AES.new(key, AES.MODE_ECB)
    decryptByts = base64.decodestring(enStr)
    msg = cipher.decrypt(decryptByts)
    msg=unpad(msg.decode())
    return msg

str="my name is maple"
key="ffm1111111111111"
res=encryt(str,key)
print(res)
pres=decrypt(res,key)
print(pres)

原文地址:https://www.cnblogs.com/angelyan/p/11308281.html

时间: 2024-08-30 08:30:20

from Crypto.Cipher import AES加密解密的相关文章

from Crypto.Cipher import AES报错

python 在 Windows下使用AES时要安装的是pycryptodome 模块   pip install pycryptodome python 在 Linux下使用AES时要安装的是pycrypto模块   pip install pycrypto 原文地址:https://www.cnblogs.com/steinven/p/11216361.html

Python中crypto模块进行AES加密和解密

#coding: utf8 import sys from Crypto.Cipher import AES from binascii import b2a_hex, a2b_hex class prpcrypt(): def __init__(self, key): self.key = key self.mode = AES.MODE_CBC #加密函数,如果text不是16的倍数[加密文本text必须为16的倍数!],那就补足为16的倍数 def encrypt(self, text):

python AES加密解密

AES加密数据块分组长度必须为128比特,密钥长度可以是128比特.192比特.256比特中的任意一个(如果数据块及密钥长度不足时,会补齐).AES加密有很多轮的重复和变换.大致步骤如下:1.密钥扩展(KeyExpansion),2.初始轮(Initial Round),3.重复轮(Rounds),每一轮又包括:SubBytes.ShiftRows.MixColumns.AddRoundKey,4.最终轮(Final Round),最终轮没有MixColumns. AES的加密解密方法如下,其中

Crypto另外两段加密解密的代码

第一段代码风格-平铺直叙: import sys from Crypto.Cipher import AES from binascii import b2a_hex, a2b_hex class prpcrypt(): def __init__(self, key): self.key = key self.mode = AES.MODE_CBC # 加密函数,如果text不是16的倍数[加密文本text必须为16的倍数!],那就补足为16的倍数 def encrypt(self, text)

python实现aes加密解密

引子: 在windows中python3使用  pycryptodemo 模块实现Aes加密解密.Aes加密有多种方式,自己可以上网了解下. AES是每16位一加密,并且保证key和vi都是16位的.废话不多说直接上代码. import base64 from Crypto.Cipher import AES from binascii import b2a_hex,a2b_hex class PrpCrypt(object): def __init__(self,key,iv): self.k

python AES加密解密 pycryptodome

环境 pyhton3.6 pip 升级到10.0以上,,不然可能出现装不上的可能. 博主为了解码 AES 用了1天的时间,安了各种包,然而走了很多坑,在这里给大家提供一个简便的方法 首先在命令行(推荐)  pip install Crypto 你会发现安装下来的包名 是小写的.(crypto ) 包的路径在你python/lib/site_packages下 必须先改成大写  (Crypto ) 然而导入   from Crypto.Cipher import AES  还是报错, 这是因为还需

python 实现aes加密解密 ecb模式和其他模式

ecb模式:(这种不需要偏移向量iv,安全性较低,代码出处忘了) # -*- coding=utf-8-*- from Crypto.Cipher import AES import os from Crypto import Random import base64 from Crypto.Cipher import AES from binascii import b2a_hex, a2b_hex """ aes加密算法 ECB模式 """

php与java通用AES加密解密算法

php与java通用AES加密解密算法 AES指高级加密标准(Advanced Encryption Standard),是当前最流行的一种密码算法,在web应用开发,特别是对外提供接口时经常会用到,下面是我整理的一套php与java通用的AES加密解密算法. php版代码如下: <?php class CryptAES { protected $cipher = MCRYPT_RIJNDAEL_128; protected $mode = MCRYPT_MODE_ECB; protected

AES加密解密&amp;amp;&amp;amp;SHA1、SHA加密&amp;amp;&amp;amp;MD5加密

AES加密解密 SHA1.SHA加密 MD5加密 二话不说立即附上代码: package com.luo.util; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.