利用Cryptodomeo库使用DES算法对信息进行加密

Posted 向阳-Y.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用Cryptodomeo库使用DES算法对信息进行加密相关的知识,希望对你有一定的参考价值。

本文介绍使用Cryptodome的方法调用DES加密算法:DES源代码在此处
其中要使用Cryptodome库,需要使用以下方法安装:

pip install pycryptodomex

使用DES加密:

#! py -3
# encoding:utf-8

from Cryptodome.Cipher import DES
import binascii
# DES加密数据的长度须为8的的倍数,不够可以用其它字符填充
text = '加密我。'
if len(text) % 8 != 0:
    text = text + " " * (8 - len(text) % 8)
# 密钥:必须为8字节
key = b'12345678'
# 使用 key 初始化 DES 对象,使用 DES.MODE_ECB 模式
des = DES.new(key, DES.MODE_ECB)
# 加密
result = des.encrypt(text.encode())   #将text转换为2进制,

print('加密后的数据:', result)
# 转为十六进制    binascii 的 b2a_hex 或者 hexlify 方法
print('转为十六进制:', binascii.b2a_hex(result))
# 解密
print('解密后的数据:', des.decrypt(result).decode('utf-8'))

以上代码还存在某些小bug,比如DES加密输入两个字:中国,会存在加密数据不为8的的倍数

以下为修改思路:UTF-8一个中文占3个字节,剩下的交给读者去完善了!

text = input("请输入加密的铭文")
bin_of_text = text.encode()
if len(bin_of_text) % 8 != 0:
    text = text + " " * (8 - len(bin_of_text) % 8)
print(len(text))

代码解释:
encode解释

以上是关于利用Cryptodomeo库使用DES算法对信息进行加密的主要内容,如果未能解决你的问题,请参考以下文章

利用openssl建立私有CA

利用openssl建立私有CA

案例使用PHP的内置函数,通过DES算法对数据加密和解密

案例使用PHP的内置函数,通过DES算法对数据加密和解密

数据的加密解密

DES加密