python简单实现AES加密和解密

本文实例为大家分享了python实现AES加密和解密的具体代码,供大家参考,具体内容如下

参考:python实现AES加密和解密

AES加密算法是一种对称加密算法, 他有一个密匙, 即用来加密, 也用来解密

import base64
from Crypto.Cipher import AES
# 密钥(key), 密斯偏移量(iv) CBC模式加密

def AES_Encrypt(key, data):
  vi = '0102030405060708'
  pad = lambda s: s + (16 - len(s)%16) * chr(16 - len(s)%16)
  data = pad(data)
  # 字符串补位
  cipher = AES.new(key.encode('utf8'), AES.MODE_CBC, vi.encode('utf8'))
  encryptedbytes = cipher.encrypt(data.encode('utf8'))
  # 加密后得到的是bytes类型的数据
  encodestrs = base64.b64encode(encryptedbytes)
  # 使用Base64进行编码,返回byte字符串
  enctext = encodestrs.decode('utf8')
  # 对byte字符串按utf-8进行解码
  return enctext

def AES_Decrypt(key, data):
  vi = '0102030405060708'
  data = data.encode('utf8')
  encodebytes = base64.decodebytes(data)
  # 将加密数据转换位bytes类型数据
  cipher = AES.new(key.encode('utf8'), AES.MODE_CBC, vi.encode('utf8'))
  text_decrypted = cipher.decrypt(encodebytes)
  unpad = lambda s: s[0:-s[-1]]
  text_decrypted = unpad(text_decrypted)
  # 去补位
  text_decrypted = text_decrypted.decode('utf8')
  return text_decrypted

key = '0CoJUm6Qyw8W8jud'
data = 'sdadsdsdsfd'
AES_Encrypt(key, data)
enctext = AES_Encrypt(key, data)
print(enctext)
text_decrypted = AES_Decrypt(key, enctext)
print(text_decrypted) 
hBXLrMkpkBpDFsf9xSRGQQ==
sdadsdsdsfd

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python实现AES和RSA加解密的方法

    本文实例为大家分享了python实现AES和RSA加解密的具体代码,供大家参考,具体内容如下 AES AES 是一种对称加密算法,用key对一段text加密,则用同一个key对密文解密, from Crypto import Random from Crypto.Hash import SHA from Crypto.Cipher import AES from Crypto.Cipher import PKCS1_v1_5 as Cipher_pkcs1_v1_5 from Crypto.Si

  • python实现AES加密和解密

    一.前言 AES,高级加密标准(英语:Advanced Encryption Standard).是用来替代DES,目前比较流行的加密算法. 它是一种对称加密算法,与上一篇博文提到过的RSA非对称算法不同,AES只有一个密钥,这个密钥既用来加密,也用于解密. AES只是个基本算法,实现AES有几种模式,主要有ECB.CBC.CFB和OFB这几种(其实还有个CTR): 1.ECB模式(电子密码本模式:Electronic codebook) ECB是最简单的块密码加密模式,加密前根据加密块大小(如

  • python3.x实现base64加密和解密

    用python3.x实现base64加密和解密,供大家参考,具体内容如下 加密 base64_encrypt.py #!/usr/bin/python3 #encoding:utf-8 import base64 var = 1 while var==1: str_encrypt=input("输入要加密的字符串:\n"); base64_encrypt = base64.b64encode(str_encrypt.encode('utf-8')) print("BASE64

  • Flask框架实现的前端RSA加密与后端Python解密功能详解

    本文实例讲述了Flask框架实现的前端RSA加密与后端Python解密功能.分享给大家供大家参考,具体如下: 前言 在使用 Flask 开发用户登录API的时候,我之前都是明文传输 username 和 password.这种传输方式有一定的安全隐患,password 可能会在传输过程中被窃听而造成用户密码的泄漏. 那么我认为解决该问题的方法是这样的:在前端页面对数据进行加密,然后再发送到后端进行处理. 这一篇文章是前端用 RSA 的 publicKey 进行加密,然后后端用 Python 进行

  • python实现AES加密与解密

    AES加密方式有五种:ECB, CBC, CTR, CFB, OFB 从安全性角度推荐CBC加密方法,本文介绍了CBC,ECB两种加密方法的python实现 python 在 Windows下使用AES时要安装的是pycryptodome 模块 pip install pycryptodome python 在 Linux下使用AES时要安装的是pycrypto模块 pip install pycrypto CBC加密需要一个十六位的key(密钥)和一个十六位iv(偏移量) ECB加密不需要iv

  • 使用Python进行AES加密和解密的示例代码

    高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用.经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准.2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一.---百度百科 本科的时候弄过DES

  • 基于Python解密仿射密码

    新学期有一门密码学课,课上老师布置了一道密码学题,题目如下: 解密由仿射密码加密的密文"DBUHU SPANO SMPUS STMIU SBAKN OSMPU SS" 想解密这个密文,首先必须要知道仿射密码是什么: 仿射密码是一种代换密码,加解密公式如下 加密:C=E([a,b],p)=(ap+b) mod 26C=E([a,b],p)=(ap+b) mod 26 解密:p=D([a,b],C)=((C−b)/a) mod 26p=D([a,b],C)=((C−b)/a) mod 26

  • python rsa实现数据加密和解密、签名加密和验签功能

    本篇文章主要说明python库rsa生成密钥对,数据的加密解密,api接口的签名和验签,如有抄袭,请留言联系我. 先安装 pip install rsa 安装好后,请看代码 """ 注意: api签名时:签名用私钥,验签用公钥 数据加密时:加密用公钥,解密用私钥 密钥和公钥保存的图片会在下边展示出来 """ import rsa # 对api的签名机制进行验证:签名用私钥,验签用公钥 class RsaEncrypt: def __init__(

  • python简单实现AES加密和解密

    本文实例为大家分享了python实现AES加密和解密的具体代码,供大家参考,具体内容如下 参考:python实现AES加密和解密 AES加密算法是一种对称加密算法, 他有一个密匙, 即用来加密, 也用来解密 import base64 from Crypto.Cipher import AES # 密钥(key), 密斯偏移量(iv) CBC模式加密 def AES_Encrypt(key, data): vi = '0102030405060708' pad = lambda s: s + (

  • Python基于pycrypto实现的AES加密和解密算法示例

    本文实例讲述了Python基于pycrypto实现的AES加密和解密算法.分享给大家供大家参考,具体如下: 一 代码 # -*- coding: UTF-8 -*- import string import random from Crypto.Cipher import AES def keyGenerater(length): '''''生成指定长度的秘钥''' if length not in (16, 24, 32): return None x = string.ascii_lette

  • Python实现AES加密,解密的两种方法

    第一种 import base64 from Crypto.Cipher import AES # 密钥(key), 密斯偏移量(iv) CBC模式加密 def AES_Encrypt(key, data): vi = '0102030405060708' pad = lambda s: s + (16 - len(s) % 16) * chr(16 - len(s) % 16) data = pad(data) # 字符串补位 cipher = AES.new(key.encode('utf8

  • Java使用AES加密和解密的实例详解

    Java使用AES加密和解密的实例详解 前言: AES的基本要求是,采用对称分组密码体制,密钥长度的最少支持为128.192.256,分组长度128位,算法应易于各种硬件和软件实现.1998年NIST开始AES第一轮分析.测试和征集,共产生了15个候选算法.1999年3月完成了第二轮AES2的分析.测试.2000年10月2日美国政府正式宣布选中比利时密码学家Joan Daemen 和 Vincent Rijmen 提出的一种密码算法RIJNDAEL 作为 AES. 在应用方面,尽管DES在安全上

  • python encrypt 实现AES加密的实例详解

    AES加密方式有五种 : ECB, CBC, CTR, CFB, OFB 从安全性角度推荐cbc算法 windows 下安装 : pip install pycryptodome linux 下安装 : pip install pycrypto cbc加密需要一个十六位的key 和一个十六位的iv(偏移量) ecb加密不需要iv aes cbc 加密的python实现 from Crypto.Cipher import AES from binascii import b2a_hex, a2b_

  • Python编程密码学文件加密与解密代码解析

    目录 本章要点 1 纯文本文件 2 使用置换密码加密文件的源代码 transpositionFileCipher.py 3 运行置换密码加密文件程序的样例 4 文件操作 4.1 打开文件 4.2 数据写入及文件关闭 4.3 读取文件 5 创建main()函数 6 检查文件是否存在 6.1 os.path.exists() 方法 6.2 使用os.path.exists()方法检查输入的文件是否存在 7 使用字符串方法令用户的输入更灵活 7.1 upper().lower()和title()字符串

  • PHP实现的AES加密、解密封装类与用法示例

    本文实例讲述了PHP实现的AES加密.解密封装类与用法.分享给大家供大家参考,具体如下: <?php /** * Class AES * 用于AES加解密数据 * time:2018-04-27 */ class AES { protected $cipher = MCRYPT_RIJNDAEL_256; //AES加密算法 protected $mode = MCRYPT_MODE_CBC; //采用cbc加密模式 protected $key; //密钥 protected $iv; //c

  • Java AES加密和解密教程

    在本教程中,我们将看到如何使用JDK中的Java密码体系结构(JCA)来实现AES加密和解密.对称密钥块密码在数据加密中起重要作用.这意味着同一密钥可用于加密和解密.高级加密标准(AES)是一种广泛使用的对称密钥加密算法. AES算法是一种迭代的对称密钥块密码,它支持128.192和256位的加密密钥(秘密密钥),以对128位的块中的数据进行加密和解密. 在AES中生成密钥的方法有两种:从随机数生成或从给定密码生成. 在第一种方法中,应该从像SecureRandom类这样的加密安全(伪)随机数生

  • Golang实现AES加密和解密的示例代码

    目录 对称加密 AES 算法 加解密 文件加密解密 说明 对称加密 AES 算法 (Advanced Encryption Standard ,AES) 优点 算法公开.计算量小.加密速度快.加密效率高. 缺点 发送方和接收方必须商定好密钥,然后使双方都能保存好密钥,密钥管理成为双方的负担. 应用场景 相对大一点的数据量或关键数据的加密. 加解密 package helpers import ( "bytes" "crypto/aes" "crypto/c

  • Python使用RSA库加密和解密

    一.rsa库(推荐) 1.公钥加密.私钥解密 # -*- coding: utf-8 -*- import rsa # rsa加密 def rsaEncrypt(str): # 生成公钥.私钥 (pubkey, privkey) = rsa.newkeys(512) print("pub: ", pubkey) print("priv: ", privkey) # 明文编码格式 content = str.encode('utf-8') # 公钥加密 crypto

随机推荐