Python 系列
前言
AES加密标准又称为高级加密标准Rijndael加密法,是美国国家标准技术研究所NIST旨在取代DES的21世纪的加密标准。AES的基本要求是,采用对称分组密码体制,密钥长度可以为128、192或256位,分组长度128位,算法应易在各种硬件和软件上实现。1998年NIST开始AES第一轮分析、测试和征集,共产生了15个候选算法。
提示:以下是本篇文章正文内容,下面案例可供参考
一、AES 是什么?
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、使用步骤
1.引入库
from Crypto.Cipher import AES
from binascii import unhexlify
import codecs
2.实际操作代码
代码如下(示例):文章来源:https://www.toymoban.com/news/detail-640456.html
# !/usr/bin/env python
# -*-coding:utf-8 -*-
# @Description :aes 128 的加密和解密操作
from Crypto.Cipher import AES
from binascii import unhexlify
import codecs
# key 是16字节,或者是16字节的倍数,
# data 也需要是16字节的倍数
key = '123456789abcdef123456789abcdef11'
key = unhexlify(key)
def do_encrypt(data):
"""
加密
:return:
"""
# 转为字节
data = unhexlify(data)
# b'\x00\x00\x00\x00\x00\x00\x00\x00\x11\x11\x11\x11\x11\x11\x11\x11'
# 可以自己选择模式
cipher = AES.new(key, AES.MODE_ECB)
encrypted_data = cipher.encrypt(data)
# 需要转为16进制
last_data = codecs.encode(encrypted_data, 'hex')
print('encrypted_data', encrypted_data) # b'\xf2\x19\x08\x90\x98\x822\x81\xd5!\xc67lE\t5'
print('last_data', last_data) # b'f219089098823281d521c6376c450935'
print('加密后的数据为:', bytes.decode(last_data)) # f219089098823281d521c6376c450935
return bytes.decode(last_data)
def do_decrypt(data):
"""
解密
:param data:
:return:
"""
# 转为字节
data = unhexlify(data)
# 可以自己选择模式
cipher = AES.new(key, AES.MODE_ECB)
encrypted_data = cipher.decrypt(data)
# 需要转为16进制
last_data = codecs.encode(encrypted_data, 'hex')
print('解密后的数据:', bytes.decode(last_data))
if __name__ == '__main__':
encrypt_data = do_encrypt("00000000000000001111111111111111")
do_decrypt(encrypt_data)
总结
文章来源地址https://www.toymoban.com/news/detail-640456.html
到了这里,关于【Python】AES 128加密和解密的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!