10.2 数据加密解密
数据的加密和解密是指通过使用特定的算法和密钥,将原始数据转换为不可读的形式(加密),然后再将其还原为原始数据(解密)的过程。
加密解密的原因主要有以下两点:
保护数据的安全性和完整性
:加密可以防止未经授权的人员访问和窃取敏感数据,同时也可以防止数据被篡改或破坏。这对于保护个人隐私、企业商业机密和国家安全等方面非常重要。
确保数据的机密性
:加密可以确保数据的机密性,即只有持有正确密钥的人才能解密和读取数据。这对于保护数据的隐私和安全至关重要。
加解密算法和hash算法不同点有:
1、加解密算法 是可逆的,hash算法是不可逆的。
2、hash算法可以对很大的数据产生比较小的哈希值,而加密算法源数据很大,加密后的数据也会很大
加解密算法可以分为对称加密
以及不对称加密
,对称加密指加密和解密使用相同的密钥
。而不对称加密指加密和解密使用不同的密钥,通常是一对密钥,称之为公钥(用来加密)和私钥(用来解密)。
比较常见的对称加密算法有:AES、RC4、DES、3DES、IDEA等。其中安全等级较高的是 AES。
而最知名的不对称加密系统就是RSA(Rivest–Shamir–Adleman) 。
在现实生活中,数据的加密和解密被广泛应用于各种场景,如电子商务、网上银行、政府机构和军事领域等。为了保证数据的安全性和完整性,通常需要使用强大的加密算法和密钥管理机制。同时,随着技术的不断发展,加密算法也在不断升级和改进,以应对日益复杂的网络安全威胁。
Python加密解密
安装加解密库:pip install cryptography
from cryptography.fernet import Fernet
key = Fernet.generate_key() # 产生密钥
f = Fernet(key)
src = "拜托,你很弱诶~"
srcBytes = src.encode() # 源信息,必须是字节串对象,字符串对象需要encode
encrypt = f.encrypt(srcBytes) # 生成加密字节串
print(encrypt) # 加密后的字节流
decrypt = f.decrypt(encrypt) # 解密,返回值是字节串对象
print(decrypt.decode()) # 解密后的字符串