`
alfred_long
  • 浏览: 567189 次
  • 性别: 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...

    AES-CMAC源码&官方文档

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

    基于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的...

    加密解密_encryption_python_AES_

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

    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 是一种广泛使用的对称加密算法,其安全性高且速度快。它使用相同的...

    Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)

    本文将探讨如何使用Python实现常见的几种加密算法,包括MD5、SHA-1、HMAC、DES、AES以及非对称加密算法RSA和ECC。 1. MD5(Message-Digest Algorithm 5): MD5是一种广泛使用的散列函数,它能将任意长度的信息映射...

    aes加密python.docx

    1. **生成密钥**:AES算法要求密钥长度为16、24或32字节。在示例代码中,我们使用了一个16字节的密钥`b'0123456789abcdef'`。你可以根据实际需求生成不同长度的密钥。 2. **创建初始化向量(IV)**:在使用AES的CBC...

    GCM-AES-128加解密及密钥打包aes_wrap

    AES(Advanced Encryption Standard)是目前广泛采用的对称加密算法,其中128位版本是AES的基础形式,提供强大的安全性。本篇将详细介绍GCM-AES-128加解密以及密钥打包aes_wrap的相关知识点。 1. **GCM-AES-128 加...

Global site tag (gtag.js) - Google Analytics