IT评测·应用市场-qidao123.com

标题: 安全基础学习-AES128加密算法 [打印本页]

作者: 张春    时间: 2024-9-21 20:09
标题: 安全基础学习-AES128加密算法
前言

AES(Advanced Encryption Standard)是对称加密算法的一个标准,紧张用于保护电子数据的安全。AES 支持128、192、和256位密钥长度,其中AES-128是最常用的一种,它使用128位(16字节)的密钥进行加密息争密操作。AES属于分组密码,每次操作128位(16字节)的数据块。

AES128加密流程

AES的加密过程包罗以下几步:
AES128解密流程

解密过程是加密过程的逆过程,包罗:
加密模式

上述所说是16字节数据加密息争密,对于数据大于16字节时,我们可以区分差别模式进行办理
ECB模式的基本原理

ECB模式的优缺点

长处


缺点


python实现

1.直接调用库

  1. from Crypto.Cipher import AES
  2. from Crypto.Util.Padding import pad, unpad
  3. import os
  4. def aes_ecb_encrypt(plain_text, key):
  5.     # 创建 AES 加密器
  6.     cipher = AES.new(key, AES.MODE_ECB)
  7.    
  8.     # PKCS7 填充
  9.     padded_text = pad(plain_text.encode(), AES.block_size)
  10.    
  11.     # 加密
  12.     encrypted_text = cipher.encrypt(padded_text)
  13.    
  14.     return encrypted_text
  15. def aes_ecb_decrypt(encrypted_text, key):
  16.     # 创建 AES 解密器
  17.     cipher = AES.new(key, AES.MODE_ECB)
  18.    
  19.     # 解密
  20.     decrypted_padded_text = cipher.decrypt(encrypted_text)
  21.    
  22.     # 移除 PKCS7 填充
  23.     decrypted_text = unpad(decrypted_padded_text, AES.block_size).decode()
  24.    
  25.     return decrypted_text
  26. if __name__ == "__main__":
  27.     # 生成 16 字节的 AES 密钥
  28.     key = os.urandom(16)
  29.    
  30.     # 示例明文
  31.     plain_text = "这是一段需要加密的文本。"
  32.    
  33.     # 加密
  34.     encrypted_text = aes_ecb_encrypt(plain_text, key)
  35.     print("加密后的文本:", encrypted_text.hex())
  36.    
  37.     # 解密
  38.     decrypted_text = aes_ecb_decrypt(encrypted_text, key)
  39.     print("解密后的文本:", decrypted_text)
复制代码
参考资料

aes参考资料1(大部门图片来自于此,可点击进入详细阅读)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4