浅谈对称加密(AES与DES)

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 浅谈对称加密(AES与DES)

浅谈对称加密(AES与DES)
对称加密是一种加密方式,其中同一个密钥(也称为私钥或共享密钥)用于加密和解密数据。这意味着加密和解密都使用相同的密钥。对称加密速度通常很快,因为它不涉及复杂的数学运算。

对称加密的示例步骤:

选择密钥:双方协商并选择一个密钥,在实际应用中确保密钥的安全性至关重要。
加密数据:使用所选密钥对明文数据进行加密,生成密文。
传输密文:将密文传输给接收方。
解密数据:接收方使用相同的密钥对接收到的密文进行解密,还原出原始明文数据。

对称加密算法有许多种,如 AES(高级加密标准)、DES(数据加密标准)等。在对称加密中,由于加密和解密使用相同的密钥,因此密钥的安全传输和存储对于确保数据机密性至关重要。

安装:

pip3 install pycrpytodome

AES(Advanced Encryption Standard)是一种对称密钥加密算法,最常用的模式ECB 模式和CBC模式,当然还有很多其他模式,都属于AES加密。ECB模式和CBC模式两者区别就是ECB不需要iv偏移量,而CBC需要。

在 AES 加密中,ECB(Electronic Codebook)模式和 CBC(Cipher Block Chaining)模式是两种常见的加密模式。以下是它们的参数、作用以及数据类型:

ECB 模式(电子密码本模式

1. **参数**- **密钥(Key)**:对称密钥,用于加密和解密数据块。
   - **初始向量(IV)**:在 ECB 模式下通常不需要使用初始向量。

2. **作用**- 将明文分成固定大小的数据块,然后独立地对每个数据块使用相同的密钥进行加密。
   - 易于实现和理解,适合对数据块进行独立加密的场景。

3. **数据类型**- **明文(Plaintext)**:待加密的原始数据。
   - **密文(Ciphertext)**:经过 ECB 模式加密后的数据。

CBC 模式(密码分组链接模式)

1. **参数**- **密钥(Key)**:对称密钥,用于加密和解密数据块。
   - **初始向量(IV)**:每次加密操作都需要一个唯一的初始向量,用于在数据块之间引入依赖性。

2. **作用**- 在加密之前,与前一个数据块的密文进行异或运算,增加了数据块之间的关联性,提高了安全性。
   - 使得每个密文块的输出都依赖于前一个数据块的加密结果,因此有更好的混淆效果。

3. **数据类型**- **明文(Plaintext)**:待加密的原始数据。
   - **密文(Ciphertext)**:经过 CBC 模式加密后的数据

这些是 AES 加密中 ECB 和 CB```js
C 模式的主要参数、作用和数据类型。选择合适的加密模式取决于具体的安全需求和应用场景。

CBC加密案例

from Crypto.Cipher import AES

import base64

key = '1234567890abcdef'.encode() # 密钥
# 密钥:必须是16位字节或者24位字节或者32位字节
text = 'philips is dsb!!'
# text = 'philips is dsb' 需要加密的内容
# while len(text.encode('utf-8')) % 16 != 0: # 如果text不足16位的倍数就用空格补足16位
#     text +=  '\0'
text = text.encode()

print('完整text:', text)

iv = b'abcdabcdabcdabcd'  # 偏移量--必须16字节

aes = AES.new(key, AES.MODE_CBC, iv) # 创建一个aes对象

en_text = aes.encrypt(text) # 加密明文
print('aes加密数据:::', en_text)

en_text = base64.b64encode(en_text).decode() # 将返回的字节型数据转进行base64编码
print(en_text)

运行结果如下:

完整text: b'philips is dsb!!'
aes加密数据::: b'\xb0\x8fxbf1\xec\xfaW\xc5o\xa5\xa5\xc1_\x0f'
sI94YmYx7PpXxW+lpcFfDw==

CBC解密案例:

from Crypto.Cipher import AES
import base64


key = '1234567890abcdef'.encode() # 密钥
model = AES.MODE_CBC
iv = b'abcdabcdabcdabcd'
aes = AES.new(key, model, iv)
text = 'SrACs3J3tfAONPPwxzMMfg=='.encode()
ecrypted_base64 = base64.b64decode(text) # base64解码成字节流
str = aes.decrypt(ecrypted_base64).decode() # 解密

print('aes解密数据:::', str)

运行结果如下:

aes解密数据::: phips is dsb!!!
相关文章
|
2月前
|
存储 安全 数据安全/隐私保护
打造安全防线!Python AES&RSA加密工具,黑客绕道走的秘籍
【9月更文挑战第9天】随着数字化时代的到来,信息安全问题日益凸显。本文将介绍如何使用Python结合AES与RSA两种加密算法,构建强大的加密工具。AES以其高效性和强安全性著称,适用于大量数据的快速加密;RSA作为非对称加密算法,在加密小量数据及实现数字签名方面表现卓越。通过整合两者,可以构建既安全又灵活的加密系统。首先,需要安装pycryptodome库。接着,实现AES加密与解密功能,最后利用RSA加密AES密钥,确保其安全传输。这种设计不仅提高了数据传输效率,还增强了密钥交换的安全性,为敏感数据提供坚实保护。
220 43
|
2月前
|
数据安全/隐私保护
aes之ecb模式的加密解密
aes之ecb模式的加密解密
|
2月前
|
存储 安全 数据安全/隐私保护
安全升级!Python AES加密实战,为你的代码加上一层神秘保护罩
【9月更文挑战第12天】在软件开发中,数据安全至关重要。本文将深入探讨如何使用Python中的AES加密技术保护代码免受非法访问和篡改。AES(高级加密标准)因其高效性和灵活性,已成为全球最广泛使用的对称加密算法之一。通过实战演练,我们将展示如何利用pycryptodome库实现AES加密,包括生成密钥、初始化向量(IV)、加密和解密文本数据等步骤。此外,还将介绍密钥管理和IV随机性等安全注意事项。通过本文的学习,你将掌握使用AES加密保护敏感数据的方法,为代码增添坚实的安全屏障。
132 8
|
1月前
|
安全 测试技术 Go
Python 和 Go 实现 AES 加密算法的技术详解
Python 和 Go 实现 AES 加密算法的技术详解
75 0
|
2月前
|
安全 算法 数据安全/隐私保护
深度揭秘!Python加密技术的背后,AES与RSA如何守护你的数据安全
【9月更文挑战第10天】随着数字化时代的到来,数据安全成为企业和个人面临的重大挑战。Python 作为功能强大的编程语言,在数据加密领域扮演着重要角色。AES 和 RSA 是两种主流加密算法,分别以对称和非对称加密方式保障数据安全。AES(Advanced Encryption Standard)因其高效性和安全性,在数据加密中广泛应用;而 RSA 则利用公钥和私钥机制,在密钥交换和数字签名方面表现卓越。
81 3
|
2月前
|
存储 安全 数据库
双重防护,无懈可击!Python AES+RSA加密方案,构建最强数据安全堡垒
【9月更文挑战第11天】在数字时代,数据安全至关重要。AES与RSA加密技术相结合,构成了一道坚固防线。AES以其高效性保障数据加密,而RSA则确保密钥安全传输,二者相辅相成,提供双重保护。本文通过Python代码示例展示了这一加密方案的魅力,强调了其在实际应用中的重要性和安全性。使用HTTPS等安全协议传输加密密钥和密文,确保数据在数字世界中自由流通而无忧。
60 1
|
2月前
|
安全 数据安全/隐私保护 Python
情书也能加密?Python AES&RSA,让每一份数据都充满爱的密码
【9月更文挑战第8天】在这个数字化时代,情书不再局限于纸笔,也可能以电子形式在网络中传递。为了确保其安全,Python提供了AES和RSA等加密工具,为情书编织爱的密码。首先,通过安装pycryptodome库,我们可以利用AES对称加密算法高效保护数据;接着,使用RSA非对称加密算法加密AES密钥和IV,进一步增强安全性。即使情书被截获,没有正确密钥也无法解读内容。让我们用Python为爱情编织一张安全的网,守护每份珍贵情感。
48 2
|
3月前
|
JavaScript 数据安全/隐私保护 Python
网易云音乐搜索接口JS逆向: Params、encSecKey加密和AES实战
网易云音乐搜索接口JS逆向: Params、encSecKey加密和AES实战
162 4
|
2月前
|
安全 算法 数据安全/隐私保护
黑客克星!Python加密艺术大公开,AES、RSA双剑合璧,守护你的数字世界
在这个数据泛滥的时代,数字世界既充满了知识,也潜藏安全隐患。Python 作为强大的编程语言,以其独特的加密技术为我们的信息安全保驾护航。本文将介绍 AES 和 RSA 这两种加密算法,揭示它们如何协同工作,保护你的数字世界。AES(高级加密标准)以其高效、安全著称,能将敏感信息转化为难以破解的乱码。Python 的 `pycryptodome` 库让 AES 加密变得简单易行。然而,AES 面临密钥分发难题,此时 RSA(非对称加密算法)便大显身手,通过公钥加密、私钥解密的方式确保密钥传输安全。AES 与 RSA 在 Python 中交织成一道坚不可摧的防护网,共同守护我们的数字世界。
77 0
|
3天前
|
SQL 安全 算法
揭秘网络安全:漏洞、加密与安全意识的三重奏
【10月更文挑战第39天】在数字时代的交响乐中,网络安全扮演着不可或缺的角色。本文旨在通过浅显易懂的语言,揭示网络安全的三大核心要素:网络漏洞、加密技术以及安全意识。我们将探索这些元素如何相互交织,共同维护我们的数字安全。从初学者到资深专家,每个人都能从中获得宝贵的知识和启示。