`
alfred_long
  • 浏览: 570787 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Python AES 算法 使用iv

阅读更多
#!/usr/bin/env python
# -*- coding:utf-8 -*- 
 
from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hex
 
class prpcrypt():
    def __init__(self,key,iv):
        self.key = key
        self.iv  = iv
        self.mode = AES.MODE_CBC
        self.BS = AES.block_size
        #补位
        self.pad = lambda s: s + (self.BS - len(s) % self.BS) * chr(self.BS - len(s) % self.BS) 
        self.unpad = lambda s : s[0:-ord(s[-1])]
     
    def encrypt(self,text):
        text = self.pad(text)
        cryptor = AES.new(self.key,self.mode,self.iv)
        #目前AES-128 足够目前使用
        ciphertext = cryptor.encrypt(text)
        #把加密后的字符串转化为16进制字符串
        return b2a_hex(ciphertext)
     
    #解密后,去掉补足的空格用strip() 去掉
    def decrypt(self,text):
        cryptor = AES.new(self.key,self.mode, iv)
        plain_text  = cryptor.decrypt(a2b_hex(text))
        return self.unpad(plain_text.rstrip('\0'))

 
if __name__ == '__main__':
    iv = "1237635217384736"
    pc = prpcrypt('Jsdfiahdjfieqodk', iv) #初始化密钥 和 iv
    import sys
    e = pc.encrypt(sys.argv[1]) #加密
    d = pc.decrypt(e) #解密
    print "加密:",e
    print "解密:",d
    print "长度:",len(d)

 

分享到:
评论

相关推荐

    AES算法-python

    在Python中实现AES算法,通常会用到如PyCryptodome或Crypto++等库。这些库提供了AES的各种功能,包括密钥生成、加密和解密等。在给定的文件列表中,我们可以看到不同的文件对应了AES的五种工作模式: 1. **ECB...

    python之AES加密解密源码

    AES(Advanced Encryption Standard),即高级加密标准,是目前广泛使用的对称加密算法之一。它以其高效性和安全性,在Python3中也有广泛的应用。本篇文章将深入探讨如何使用Python3实现AES加密和解密。 首先,AES...

    python aes算法库

    Python AES(Advanced Encryption Standard)算法库是用于加密和解密数据的强大工具,它基于标准的AES规范,提供了在Python环境中实现AES加密算法的各种功能。AES是一种块密码,它使用固定大小的128位(16字节)块对...

    aes算法完整源码与调用方法

    AES算法基于替换和置换操作,主要由四个基本操作组成:字节代换(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和轮密钥加(AddRoundKey)。这些操作在多个轮次中重复进行,以增强加密的复杂性和安全性。 ...

    aes对称加密示例,CBC模式,192密钥

    AES(Advanced Encryption Standard)是一种广泛使用的对称加密算法,它基于Rijndael算法,具有高效性和安全性。在本示例中,我们关注的是AES在CBC(Cipher Block Chaining)模式下,使用192位密钥进行加密。CBC模式...

    基于AES加密算法的python.zip

    AES(Advanced Encryption Standard)是一种广泛使用的对称加密算法,它为数据提供了强大的安全性。在Python中,我们可以使用标准库`cryptography`或者第三方库如`pycryptodome`来实现AES加密和解密。这个"基于AES...

    python aes加解密调试

    在Python编程环境中,AES(Advanced Encryption Standard)是一种广泛使用的对称加密算法,常用于数据的安全存储和传输。本文将深入探讨Python中AES的加解密调试过程,以及如何使用PKCS5填充方式来增强安全性。 ...

    Python程序设计:AES数据加密.pptx

    理解AES算法和Python中`Crypto`模块的使用对于信息安全专业人员来说至关重要,因为它们是保护数据安全的基础工具。在实际应用中,还需要考虑密钥管理和安全存储等问题,以确保数据在传输和存储过程中的安全性。

    aes加密算法实例(自己试验用的)

    AES(Advanced Encryption Standard)是高级加密标准,是一种广泛使用的对称加密算法,为数据提供高强度的安全保护。在本文中,我们将深入探讨AES加密算法的基本原理、工作方式以及如何通过实例来理解和应用它。 ...

    aes解密需要的BouncyCastleProvider

    引入BouncyCastleProvider后,开发者可以创建一个`Cipher`实例,选择AES算法,并设置密钥进行加密或解密操作。例如,在解密过程中,首先需要加载BouncyCastleProvider,然后创建一个Cipher对象,指定解密模式(如CBC...

    基于python的对称加密算法aes

    **对称加密算法AES在Python中的应用** 对称加密算法是一种常见的数据加密方式,其中AES(Advanced Encryption Standard)是目前广泛使用的对称加密标准。AES最初由比利时密码学家Joan Daemen和Vincent Rijmen设计,...

    Python加密与解密

    1. PyCrypto:PyCrypto是Python中广泛使用的加密库,包含了多种加密算法,如AES(高级加密标准)、RSA(公钥加密技术)、DES(数据加密标准)等。 2. cryptography:这是一个现代密码学库,提供Fernet(基于AES的...

    AES-CMAC源码&官方文档

    4. CBC-MAC模式:对于每个数据块,使用上一密文块(对于第一个块,使用初始处理后的IV)和当前块进行AES加密,然后将结果用作下一个块的输入。 5. 最后一步处理:当所有数据块都处理完毕后,需要对最后一块进行特殊...

    信息安全领域+AES 算法文件加密工具实战项目+源码及说明

    本资源为基于 AES 算法的文件加密工具实战项目,包含 Python 源码及详细使用说明。通过实现文件加密与解密功能,帮助初步学习信息安全领域的人员理解对称加密原理与应用。适用于相关课程实践、个人学习探索等场景,...

    操作系统之安全算法13.数据完整性与AES算法.docx

    在上述提供的Python示例中,AES算法与SHA-256散列函数结合使用,演示了加密数据的同时也保证了数据的完整性。示例中首先定义了AES密钥和初始化向量(IV),然后创建了AES加密器,并使用它对数据进行加密。为了保持...

    加密解密_encryption_python_AES_

    `algorithms.AES(key)`创建AES算法实例,`modes.CBC(iv)`指定使用CBC(Cipher Block Chaining)模式,然后创建加密器和解密器。`encryptor.update()`和`.finalize()`用于加密数据,而`decryptor.update()`和`....

    物联网之安全算法:加密算法(AES, RSA):AES加密算法详解.docx

    为了更好地理解和运用AES加密算法,我们可以参考其在Python中的应用示例。在这个示例中,我们使用了cryptography库来实现AES加密。首先,通过os.urandom函数生成一个随机的128位密钥和一个16字节的初始化向量(IV)...

    Python程序设计:AES数据解密.pptx

    这些库提供了方便的API,允许开发者轻松地导入AES算法,并使用CBC模式进行解密。例如,使用`pycryptodome`库的代码可能如下: ```python from Crypto.Cipher import AES from Crypto.Random import get_random_...

    AES-128-CTR加解密.rar

    4. **加密**:AES算法使用密钥和计数器值产生一个128位的密钥流。 5. **异或操作**:将密钥流与明文数据进行逐位异或,得到加密后的密文。 6. **解密**:解密过程与加密相反,先使用相同的密钥和IV生成相同的密钥流...

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

    本篇文章将详细介绍如何使用 Python 来实现 AES(高级加密标准)和 RSA(Rivest-Shamir-Adleman)这两种加密算法。 #### 二、AES 加密算法 AES 是一种广泛使用的对称加密算法,其安全性高且速度快。它使用相同的...

Global site tag (gtag.js) - Google Analytics