密码算法之DES---3DES原理
肩膀
DES算法实例详解
python加密
3DES图示
DES 和 3DES
DES 的密钥过短,现在已经不推荐使用了,所以这个库没有 DES 的算法封装,如果你需要使用这种算法,推荐用 pyDes 这个库。 DES 需要提供以下数据:
- key 秘钥,56, 112, 或者 168 位(bits)
- mode 加密方式,可以是 ECB 和 CBC
- IV 初始向量,CBC 方式必须提供,加密的 IV 和解密的 IV 必须一致。
- pad 补位字符串,如果补位方式是 Normal, 必须提供,如果补位方式是 PAD_PKCS5, 不需要提供。
- padmode 补位方式,可以是 Normal 和 PAD_PKCS5,建议 PAD_PKCS5
这个库使用 DES 加密,默认使用 ECB 方式,默认补位方式为 PKCS5 写法比较简单,得到的是一个 bytes 类型。
import pyDes
key = 'mysecret'
cipher = pyDes.des(key, padmode=pyDes.PAD_PKCS5)
encrypted = cipher.encrypt('abc')
# >>> b'v\x02J\x867\x8fQ\\'
解密的 key, mode, IV, pad, padmode 都和加密时保持一致:
cipher = pyDes.des(key, padmode=pyDes.PAD_PKCS5)
decrypted = cipher.decrypt(encrypted)
# >>> b'abc'
详细版加密
import pyDes
key = 'mysecret'
cipher = pyDes.des(key, mode=pyDes.CBC, # 模型IV='\0\0\0\0\0\0\0\0', # IVpad= ' ', # 空格补位padmode=pyDes.PAD_NORMAL
)
encrypted = cipher.encrypt('abc')
# >>> b'v\x02J\x867\x8fQ\\'
详细版解密
cipher = pyDes.des(
key,
mode=pyDes.CBC, # 模型
IV='\0\0\0\0\0\0\0\0', # IV
pad= ' ', # 空格补位
padmode=pyDes.PAD_NORMAL
)
decrypted = cipher.decrypt(encrypted)
# >>> b'abc'
3DES 在 DES 的基础上增加了密钥长度,秘钥可以是 64, 128 或者 192 位(bits), 3DES 目前也不推荐使用,因为他的速度非常慢。
import pyDes
import os
key = os.urandom(16)
cipher = pyDes.triple_des(key, padmode=pyDes.PAD_PKCS5)
encrypted = cipher.encrypt('abc')
# >>> b'DGFx\xc6\xb4\xad@'
cipher = pyDes.triple_des(key, padmode=pyDes.PAD_PKCS5)
decrypted = cipher.decrypt(encrypted)
# >>> b'abc'
在 cryptography 中的使用和 AES 基本一致,只需要把算法名称改一下就可以了。
from cryptography.fernet import (Cipher, algorithms, modes, padding
)
key = os.urandom(16)
iv = os.urandom(8)
cipher = Cipher(algorithm=algorithms.TripleDES(key),mode=modes.CBC(iv)
)
encryptor = cipher.encryptor()
padder = padding.PKCS7(128).padder()
padder_data = padder.update(b'wyz') + padder.finalize()
cipher_text = encryptor.update(padder_data) + encryptor.finalize()
密码算法之DES---3DES原理相关推荐
- 【密码算法 之零】对称算法(DES,、3DES、 AES、DM5、HMAC、CMAC、SHAxx、SM3、SM4),非对称算法(RSA、ECC、ECDSA、ECDH、SM2、SM9...)
由于工作的需要,在过去的两年中学习.适配了很多算法,包括对称算法.非对称算法.国密算法.国际算法等.为了逼迫自己能够牢记并掌握这些算法的基本知识点,故本人写了一个关于算法的专栏(持续更新中...) ...
- 如何实现DES/3DES算法
如何实现DES/3DES算法 原文:Matthew Fischer 翻译:小榕软件实验室 < 这篇文档是我从小榕实验室下载的,为了保证原文的完整性,如果有影响原文内容的改动,我会把我写的用中扣 ...
- 通俗易懂,十分钟读懂DES,详解DES加密算法原理,DES攻击手段以及3DES原理。Python DES实现源码
文章目录 1.什么是DES 2.DES的基本概念 3.DES的加密流程 4.DES算法步骤详解 4.1 初始置换(Initial Permutation,IP置换) 4.2 加密轮次 4.3 F轮函数 ...
- 3、【java数据安全】对称加密的5种(DES/3DES、AES、IDEA、PBE)常见算法的使用示例
java数据安全 系列文章 1.[java数据安全]数据安全之加密解密(base64.MD.SHA.DES.AES.IDEA.PBE.DH.RSA.EIGamal).数字签名(DSA.ECDSA)和数 ...
- DES密码算法实现(C语言)
算法介绍 DES算法为密码体制中的对称密码体制,又被称为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法. 明文按64位进行分组,密钥长64位,密钥事实上是56位参与DES运算( ...
- 安全密码c语言编程,商用密码算法原理与C语言实现
2020年1月1日,<中华人民共和国密码法>正式施行.国家鼓励和支持密码科学技术研究与应用,促进密码科学技术进步与创新,加强密码人才培养和队伍建设,采取多种形式加强密码安全教育.本书是在国 ...
- 凯撒密码(Caesar)的原理和算法实现(C语言)
凯撒密码(Caesar)的原理和算法实现 1.凯撒密码的原理: 它是一种古典密码体质下的一种密码,是一种移位密码,具有单表密码的性质,密文和明文都使用同一个映射,为了保证加密的可逆性,要求映射都是一一 ...
- 密码算法原理与实现:Base64编码
本文转自网络文章,内容均为非盈利,版权归原作者所有. 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除. 原文作者:QiuJYu 原文地址:密码学基础:Base64编码 目录 文章概述: Base ...
- 【密码算法 之七】GCM 浅析
文章目录 1. 概述 1.1 GHASH 1.3 GCTR 2. GCM 加密 3. GCM 解密 4. 总结 在我的另一篇博客[密码算法 之三]分组密码工作模式 (ECB \ CBC \ CFB ...
- 商用密码应用与安全性评估要点笔记(密码发展、密码算法)
1.3 密码发展 词条 内容 创新的动力 信息系统的应用需求和攻击威胁 发展三个阶段 古典密码.机械密码.现代密码 古典密码 代换密码,采用一个代换表将一段明文变换成一段密文.若代换表只有一个,是单表 ...
最新文章
- pandas索引复合索引dataframe数据、索引其中一个水平(level)的所有数据行(index all rows in a level)
- python基于百度接口的语音识别_Python基于百度接口的语音识别
- [SPOJ 687]Repeats
- VC++新建选择卡的解释
- python下面的代码_解析一下下面的python代码?
- python中列表的值与内存地址_python---列表、元组
- Java讲课笔记05:运算符与表达式
- 根据快手账号的分享链接下载无水印视频,思路
- excel 个人日常记账——统计报表
- 最强内存稳定性测试软件,内存稳定性测试软件Memtest正式版——HyperX FURY DDR4成绩喜人...
- CorelDRAW快速制作八心八箭钻石项链效果
- 最新版火车头织梦内容发布规则_火车头采集 - 织梦图集发布模块的制作
- 使用switch常量c语言,c语言switch(c语言switch语句用法)
- 智能骨科图像方向,按照期刊进行的文献整理
- 爬动的蠕虫(C语言)
- mysql mybatis分表查询_mybatis 自动分表
- python 中的 __len__(self) 方法
- uniapp:去掉微信小程序顶部的导航栏
- 数据分析师的具体工作职责和工作内容有哪些?
- 微信小程序中使用字体库_小程序使用自定义字体库
热门文章
- 什么是微服务网关?SpringCloud Gateway保姆级入门教程
- 【MATLAB appdesigner】27_如何在appdesigner中调试,查看变量?(举例+技巧)
- 如何从“设计师必考三大证书”中,正确看待:adobe认证证书含金量?
- jre8 64位官网安装版下载
- 项目组小型任务管理工具-ToDoList
- 【免费直播】零基础Office速通,助您走向Word/Excel/PPT高手之路
- 隐身侠和360密盘哪个好?加密软件推永久免费版还抽奖
- 六顶思考帽——培训总结
- 算法 {哈密顿路径,哈密顿环}
- 单片机原理及应用技术课后答案(5)