python中aes函数 python aes

python3使用AES报错ImportError: cannot import name '_AES'解决方法

导致这种错误的原因是没有正确安装AES库,执行下面命令安装Python3版本的AES库:

专注于为中小企业提供成都网站制作、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业淮安区免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

pipinstall pycryptodome

------------------------------

ID:Python之战

|作|者|公(zhong)号:python之战 

专注Python,专注于网络爬虫、RPA的学习-践行-总结

喜欢研究和分享技术瓶颈,欢迎关注

独学而无友,则孤陋而寡闻!

---------------------------

python3 安装Crypto.Cipher import AES

问题背景:

m3u8文件加密时,使用“from Crypto.Cipher import AES”相关函数解密:

#EXT-X-KEY 记录了加密的方式,一般是AES-128以及加密的KEY信息

出现问题:

from Crypto.Cipher import AES

pip install Crypto

出错

解决办法:

安装crypto库(首字母c是小写)

pip install crypto

进入python的库管理位置,site-packages文件夹,找到crypto,将其首字母c改为大写

判断是否解决的方式:

from Crypto.Cipher import AES

不会报错,说明成功。

备注:

如果在C:\Python36\Lib\site-packages\Crypto目录下没有找到:\Cipher目录。

可以尝试安装pycryptodome库 或 pycrypto库:

pip install pycryptodome

pip install pycrypto (安装这个库,基本会失败,会报错)

Python进行 AES CBC-128bit PKCS7/PKCS5 填充加密解密

你看一下这个例子吧。可以参考下面的地址:前面加上http,把句号改成点。

likang。me/blog/2013/06/05/python-pycrypto-aes-ecb-pkcs-5/

# -*- coding: utf-8 -*-

from Crypto.Cipher import AES

import os

BS = AES.block_size

pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)

unpad = lambda s : s[0:-ord(s[-1])]

key = os.urandom(16) # the length can be (16, 24, 32)

text = 'to be encrypted'

cipher = AES.new(key)

encrypted = cipher.encrypt(pad(text)).encode('hex')

print encrypted  # will be something like 'f456a6b0e54e35f2711a9fa078a76d16'

decrypted = unpad(cipher.decrypt(encrypted.decode('hex')))

print decrypted  # will be 'to be encrypted'

什么是AES?AES加密函数和AES解密函数

它被预期能成为人们公认的加密包括金融、电信和政府数字信息的方法。 AES 是一个新的可以用于保护电子数据的加密算法。明确地说,AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据 的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换(permutations )和替换(substitutions)输入数据。Figure 1 显示了 AES 用192位密钥对一个16位字节数据块进行加密和解密的情形。

python3.6 AES 加密解密

本来以为这是个比较简单的东西,网上一搜一大把。搜索结果气的我自己看文档写了一个。

首先安装pycryptodome或者pycryptodomex 用pip 安装,安装之后需要修改包名crypto改为Crypto

我是采用ECB模式加密你也可以用其他模式加密,模式区别可以看这篇 。

秘钥加密解密需要统一。


本文标题:python中aes函数 python aes
分享网址:http://myzitong.com/article/docedpp.html