前言:
工作需求:所有参数(数据库连接,服务器连接,都不能使用明文传参),所以需要一个加密解密算法,本来是想写 AES 的,但是 python 环境下各种改东西调试,好烦,所以退而求其次用 DES;
DES 算法写了 java 版和 python 版,这个是 python 版,java 版可以在我的博客里找一下。java版
1.直接上代码
#!/usr/bin/python
# -*- coding: utf-8 -*-
import binascii
from pyDes import des, CBC, PAD_PKCS5
def des_encrypt(secret_key, s):
iv = secret_key
k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
en = k.encrypt(s, padmode=PAD_PKCS5)
return binascii.b2a_hex(en)
def des_decrypt(secret_key, s):
iv = secret_key
k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
de = k.decrypt(binascii.a2b_hex(s), padmode=PAD_PKCS5)
return de
secret_str = des_encrypt('testtest', 'this is a test?!*')
print '密文:', secret_str
clear_str = des_decrypt('testtest', secret_str)
print '明文:', clear_str
2.运行结果
密文: 316eb4faaad904a3d44e4cf842a4ae0b9dd102365a12f814
明文: this is a test?!*
3.tips
DES 算法要求密钥的位数必须是 8 位。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/16609.html