在安全领域,利用密钥加密算法来对通信的过程进行加密是一种常见的安全手段。利用该手段能够保障数据安全通信的三个目标:
1、数据的保密性,防止用户的数据被窃取或泄露
2、保证数据的完整性,防止用户传输的数据被篡改
3、通信双方的身份确认,确保数据来源与合法的用户
而常见的密钥加密算法类型大体可以分为三类:对称加密、非对称加密、单向加密
【三种分类】
1、对称加密:密钥只有一个,解密、解密都是这个密码,加解密速度快,典型的对称加密有DES、AES、RC4等
2、非对称加密:密钥成对出现,分别为公钥和私钥,从公钥无法推知私钥,反之,从私钥也无法推知公钥,加密和解密使用不同的密钥,公钥加密需要私钥解密,反之,私钥加密需要公钥解密。非对称加密速度较慢,典型的非对称算法有:RSA,DSA,DSS.
3、Hash算法,这是一种不可逆的算法,它常用于验证数据的完整性。
1、MD5加密解密
md5加密原理
MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
import hashlibdef md5_encrypt(text):# 创建md5对象md5 = hashlib.md5()# 更新md5对象的内容md5.update(text.encode('utf-8'))# 返回十六进制的MD5哈希值return md5.hexdigest()text = "Hello, World!"
md5_hash = md5_encrypt(text)
print("MD5哈希值:", md5_hash)
2、Base64加密解密
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。
Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。
import base64def base64_encode(text):# 将字符串转换为字节,并进行Base64编码encoded_bytes = base64.b64encode(text.encode("utf-8"))# 将字节结果转换为字符串返回return encoded_bytes.decode("utf-8")def base64_decode(encoded_text):# 将Base64编码的字符串转换为字节,并进行解码decoded_bytes = base64.b64decode(encoded_text.encode("utf-8"))# 将字节结果转换为字符串返回return decoded_bytes.decode("utf-8")text = "Hello, World!"
encoded_text = base64_encode(text)
print("Base64编码:", encoded_text)decoded_text = base64_decode(encoded_text)
print("Base64解码:", decoded_text)
这种编码方式常用于数据传输时,例如在URL、邮件等传输场景中,但它不提供加密安全性。