加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-16 20:54:49 所属栏目:Python 来源:网络整理
导读:本篇章节讲解Python基于pycrypto实现的AES加密和解密算法。供大家参考研究具体如下: 一 代码 # -*- coding: UTF-8 -*-import stringimport randomfrom Crypto.Cipher import AESdef keyGenerater(length): '''''生成指定长度的秘钥''' if length

本篇章节讲解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_letters+string.digits
  return ''.join([random.choice(x) for i in range(length)])
def encryptor_decryptor(key,mode):
  return AES.new(key,mode,b'0000000000000000')
#使用指定密钥和模式对给定信息进行加密
def AESencrypt(key,text):
  encryptor = encryptor_decryptor(key,mode)
  return encryptor.encrypt(text)
#使用指定密钥和模式对给定信息进行解密
def AESdecrypt(key,text):
  decryptor = encryptor_decryptor(key,mode)
  return decryptor.decrypt(text)
if __name__ == '__main__':
  text = 'Python3.5 is excellent.'
  key = keyGenerater(16)
  #随机选择AES的模式
  mode = random.choice((AES.MODE_CBC,AES.MODE_CFB,AES.MODE_ECB,AES.MODE_OFB))
  if not key:
    print('Something is wrong.')
  else:
    print('key:',key)
    print('mode:',mode)
    print('Before encryption:',text)
    #明文必须以字节串形式,且长度为16的倍数
    text_encoded = text.encode()
    text_length = len(text_encoded)
    padding_length = 16 - text_length%16
    text_encoded = text_encoded + b'0'*padding_length
    text_encrypted = AESencrypt(key,text_encoded)
    print('After encryption:',text_encrypted)
    text_decrypted =AESdecrypt(key,text_encrypted)
    print('After decryption:',text_decrypted.decode()[:-padding_length])

二 运行结果

E:pythonpython可以这样学第18章 密码学编程code>python AES_test.py
('key:','D5pcO6iu0HIbj3I2')
('mode:',1)
('Before encryption:','Python3.5 is excellent.')
('After encryption:','xf4x15x9fxafxeaxd0nx03xfdfxf6}9xaaxa34xb4x1eL2x0e x16xa5 xff?x8bAx8exddxa8')
('After decryption:',u'Python3.5 is excellent.')

PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:

文字在线加密解密工具(包含AES、DES、RC4等):
http://tools.aspzz.cn/password/txt_encode

MD5在线加密工具:
http://tools.aspzz.cn/password/CreateMD5Password

在线散列/哈希算法加密工具:
http://tools.aspzz.cn/password/hash_encrypt

在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.aspzz.cn/password/hash_md5_sha

在线sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.aspzz.cn/password/sha_encode

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

您可能感兴趣的文章:

  • Python实现的维尼吉亚密码算法示例
  • python 换位密码算法的实例详解
  • python使用rsa加密算法模块模拟新浪微博登录
  • python实现RSA加密(解密)算法
  • Python基于DES算法加密解密实例
  • python实现的DES加密算法和3DES加密算法实例
  • Python实现的文本简单可逆加密算法示例
  • Python md5与sha1加密算法用法分析
  • Python实现的rsa加密算法详解
  • Python实现的HMacMD5加密算法示例
  • Python使用MD5加密算法对字符串进行加密操作示例
  • Python实现的凯撒密码算法示例

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读