DES对称加密算法实操(python)
DES机密算法:
DES是⼀种对称加密算法。它使⽤相同的密钥进⾏加密和解密操作。 DES 算法将明⽂数据分成 64 位的块,然后通过⼀系列复杂的置换、替换和循环操作,使⽤56 位的密钥(实际密钥⻓度为 64 位, 但其中8 位⽤于奇偶校验)对数据块进⾏加密,得到密⽂。这种对称加密算法的特点是加密和解密 速度相对较快,但密钥管理⽐较复杂。
Ubuntu的OS演示:
1. 安装相关包管理工具和调用库工具:
sudo apt install python3-pip
sudo pip install pydes
解释安装包作用:apt install python3-pip:apt是 Debian、Ubuntu 等基于 Debian 的 Linux 发行版
中的包管理工具,用于从软件源中获取、安装、升级和卸载软件包。python3-pip 是提供Python 3 版本的pip包管理器的软件包。apt install python3-pip 这条命令的作用是
通过apt包管理器,在系统中下载并安装 Python 3 的pip包管理器 。安装完成后,就可以
使用pip(一般用pip3 ,确保使用的是 Python 3 对应的pip )命令来安装、升级、卸载Python 包,以及管理 Python 包的版本等操作。pip install pydes:pip是 Python 的包管理工具,用于从 Python 包索引(PyPI)或
其他源中获取并安装 Python 包。pydes 是一个 Python 库,它实现了 DES(数据加密
标准)算法,可用于对数据进行加密和解密 。pip install pydes 这条命令的作用是使用
pip工具,从软件源(默认是 PyPI )中下载并安装pydes库。安装完成后,在 Python 代码
中就可以导入pydes库,调用其相关函数和类,来实现对数据的加密和解密功能。
2.编写加密代码,执行,得到加密过后的密文。
## 加密代码
root@chaoyuan:~# cat pydes.py
import pyDes
key = b"abcdefgh"
des = pyDes.des(key, pyDes.ECB, padmode=pyDes.PAD_PKCS5)
plain_text = b"Hello, World! chaoyuan666"
cipher_text = des.encrypt(plain_text)
print("密⽂:", cipher_text)## 执行加密代码,得到加密过后的密文
root@chaoyuan:~# python3 pydes.py
密⽂: b'>\xe3\xcb\xec//1\x08\x18\xdd\x8cn\xdf_LH\x10b\x17\x08\xef\x89\xf0\x1eY\x98\x7f2\xc0d\xa2_'
3.编写解密代码,执行,得到解密过后的明文。
root@chaoyuan:~# vi decrypt.py
root@chaoyuan:~# cat decrypt.py
import pyDes
# 加密时使⽤的密钥,需为8字节
key = b"abcdefgh"
# 初始化DES对象,采⽤ECB模式与PKCS5填充模式
des = pyDes.des(key, pyDes.ECB, padmode=pyDes.PAD_PKCS5)
# 假设这是之前加密得到的密⽂
cipher_text = b'>\xe3\xcb\xec//1\x08\x18\xdd\x8cn\xdf_LH\x10b\x17\x08\xef\x89\xf0\x1eY\x98\x7f2\xc0d\xa2_'
# 进⾏解密
plain_text = des.decrypt(cipher_text)
print("明⽂:", plain_text.decode())
root@chaoyuan:~# python3 decrypt.py
明⽂: Hello, World! chaoyuan666
4. 最终成功得到了最初的明文:Hello, World! chaoyuan666,说明连接成功。