当前位置: 首页 > 后端技术 > Python

AES加解密实例(qbit)

时间:2023-03-26 00:04:56 Python

AES简介密码学中的高级加密标准(AES),又称Rijndael加密法,是美国联邦政府采用的一种块加密标准。该标准用于替代原来的DES(DataEncryptionStandard),经过多方分析,在世界范围内得到广泛应用。经过五年的选择过程,高级加密标准于2001年11月26日由美国国家标准技术研究院(NIST)在FIPSPUB197中发布,并于2002年5月26日成为有效标准。2006年,Advanced加密标准成为对称密钥加密中最流行的算法之一。该算法由比利时密码学家JoanDaemen和VincentRijmen设计,结合两位作者的名字,以Rijdael命名,并提交给AdvancedEncryptionStandard的选择过程。(Rijdael的发音更接近于“Rhinedoll”。)例子(Python3)第三方包安装pip3installpycryptodome-ihttps://pypi.doubanio.com/simple/pip3installpkcs7-ihttps://pypi.doubanio.com/simple/code#encoding=utf-8#作者:walker#日期:2019-09-19#摘要:AES加解密示例(CBC模式,pkcs7占位符):r"""加密明文:明文key:keyiv:offset"""encoder=PKCS7Encoder()aes=AES.new(key,AES.MODE_CBC,iv)padtext=encoder.encode(plaintext)cipherbytes=aes.encrypt(padtext.encode('utf8'))ciphertext=base64.b64encode(cipherbytes).decode('utf8')returnciphertextdefdecrypt_aes_pkcs7(ciphertext,key,iv):r"""解密明文:密文密钥:加密密钥iv:偏移“””编码器=PKCS7Encoder()aes=AES.new(key,AES.MODE_CBC,iv)cipherbytes=base64.b64decode(ciphertext.encode('utf8'))padtext=aes.decrypt(cipherbytes).decode('utf8')plaintext=encoder.decode(padtext)returnplaintextif__name__=='__main__':key=b'1CF28E8DBB1F36F9DE50C06ADFFD942B'iv=key[0:16]timestamp=time.time()print('时间戳:%f(%s)'%(timestamp,time.strftime('%Y-%m-%d%H:%M:%S',time.localtime(timestamp))))plaintext="%s*%s"%(timestamp,r'walkersnapshot')print('plaintext:%s'%plaintext)print('key:%s'%key)print('iv:%s'%iv)assert(plaintext==decrypt_aes_pkcs7(encrypt_aes_pkcs7(plaintext,key,iv),key,iv))ciphertext=encrypt_aes_pkcs7(plaintext,key,iv)print('ciphertext:%s'%ciphertext)相关链接pypi:pycryptodome,pkcs7gist示例代码:https://gist.github.com/denni...AES在线加解密本文来自qbitsnap