des两种加密方式讲解和测试
来源:互联网 发布:一品威客网 知乎 编辑:程序博客网 时间:2024/06/05 02:32
des两种加密方式讲解:
电子密码本模式ECB:
最古老,最简单的模式,将加密的数据分成若干组,每组的大小跟加密密钥长度相同;
然后每组都用相同的密钥加密, 比如DES算法, 如果最后一个分组长度不够64位,要补齐64位;
定义:
Enc(X,Y)是加密函数
Dec(X,Y)是解密函数
Key是加密密钥;
Pi ( i = 0,1…n)是明文块,大小为64bit;
Ci ( i = 0,1…n)是密文块,大小为64bit;
ECB加密算法可表示为:
Ci = Enc(Key, Pi)
ECB解密算法可以表示为:
Pi = Dec(Key,Ci)
算法 特点:
每次Key、明文、密文的长度都必须是64位;
数据块重复排序不需要检测;
相同的明文块(使用相同的密钥)产生相同的密文块,容易遭受字典攻击;
一个错误仅仅会对一个密文块产生影响;
加密块链模式CBC:
与ECB模式最大的不同是加入了初始向量
定义:
Enc(X,Y)是加密函数
Dec(X,Y)是解密函数
Key是加密密钥;
Pi ( i = 0,1…n)是明文块,大小为64bit;
Ci ( i = 0,1…n)是密文块,大小为64bit;
XOR(X,Y)是异或运算;
IV是初始向量(一般为64位);
ECB加密算法可表示为:
C0 = Enc(Key, XOR(IV, P0)
Ci = Enc(Key, XOR(Ci-1, Pi)
ECB解密算法可以表示为:
P0 = XOR(IV, Dec(Key, C0))
Pi = XOR(Ci-1, Dec(Key,Ci))
算法特点:
每次加密的密文长度为64位(8个字节);
当相同的明文使用相同的密钥和初始向量的时候CBC模式总是产生相同的密文;
密文块要依赖以前的操作结果,所以,密文块不能进行重新排列;
可以使用不同的初始化向量来避免相同的明文产生相同的密文,一定程度上抵抗字典攻击;
一个错误发生以后,当前和以后的密文都会被影响;
DES加密分为CBC和ECB两种,两种的区别在于init是用的api一样
首先DES加密步骤:
1,bulidkey 创建一个秘钥对象
2,setkey 获取秘钥值
3,getInstance 创建一个Cipher对象
4,init 选择加密还是解密
5,dofinal 对数据进行加密
具体API分析在写完电子钱包之后开始总结
下面是ECB加密的结果测试分析
秘钥为:00 00 00 00 08 00 00 00(是可能是8个字节)但是2DES是(16个字节)(3des是24个字节)
明文为:00 00 00 00 00 00 00 00 (为8个字节的倍数)
密文测试结果:
cbc选择不过模式下密文的结果:
ALG_DES_CBC_ISO9797_M1:
49 24 2A 11 02 F6 06 80 90 00
ALG_DES_CBC_ISO9797_M2:
49 24 2A 11 02 F6 06 80 AE 88 97 94 8E 53 58 29 90 00
ALG_DES_CBC_NOPAD:
49 24 2A 11 02 F6 06 80 90 00
ALG_DES_CBC_PKCS5:
49 24 2A 11 02 F6 06 80 90 00
填充方式:
ISO9797_M1:
明文不够8个字节会在后面填充0;
ISO9797_M2:
明文不够8个字节会在后面填充一位1;
NOPAD:
不填充;
PKCS5:
ecb选择不过模式下密文的结果:
ALG_DES_EBC_ISO9797_M1:
81 81 B6 5B AB F4 A9 75 90 00
ALG_DES_EBC_ISO9797_M2:
81 81 B6 5B AB F4 A9 75 9A 6E FF A2 A3 2D C8 A6 90 00
ALG_DES_EBC_NOPAD:
81 81 B6 5B AB F4 A9 75 90 00
ALG_DES_EBC_PKCS5:
比较复杂
电子密码本模式ECB:
最古老,最简单的模式,将加密的数据分成若干组,每组的大小跟加密密钥长度相同;
然后每组都用相同的密钥加密, 比如DES算法, 如果最后一个分组长度不够64位,要补齐64位;
定义:
Enc(X,Y)是加密函数
Dec(X,Y)是解密函数
Key是加密密钥;
Pi ( i = 0,1…n)是明文块,大小为64bit;
Ci ( i = 0,1…n)是密文块,大小为64bit;
ECB加密算法可表示为:
Ci = Enc(Key, Pi)
ECB解密算法可以表示为:
Pi = Dec(Key,Ci)
算法 特点:
每次Key、明文、密文的长度都必须是64位;
数据块重复排序不需要检测;
相同的明文块(使用相同的密钥)产生相同的密文块,容易遭受字典攻击;
一个错误仅仅会对一个密文块产生影响;
加密块链模式CBC:
与ECB模式最大的不同是加入了初始向量
定义:
Enc(X,Y)是加密函数
Dec(X,Y)是解密函数
Key是加密密钥;
Pi ( i = 0,1…n)是明文块,大小为64bit;
Ci ( i = 0,1…n)是密文块,大小为64bit;
XOR(X,Y)是异或运算;
IV是初始向量(一般为64位);
ECB加密算法可表示为:
C0 = Enc(Key, XOR(IV, P0)
Ci = Enc(Key, XOR(Ci-1, Pi)
ECB解密算法可以表示为:
P0 = XOR(IV, Dec(Key, C0))
Pi = XOR(Ci-1, Dec(Key,Ci))
算法特点:
每次加密的密文长度为64位(8个字节);
当相同的明文使用相同的密钥和初始向量的时候CBC模式总是产生相同的密文;
密文块要依赖以前的操作结果,所以,密文块不能进行重新排列;
可以使用不同的初始化向量来避免相同的明文产生相同的密文,一定程度上抵抗字典攻击;
一个错误发生以后,当前和以后的密文都会被影响;
DES加密分为CBC和ECB两种,两种的区别在于init是用的api一样
首先DES加密步骤:
1,bulidkey 创建一个秘钥对象
2,setkey 获取秘钥值
3,getInstance 创建一个Cipher对象
4,init 选择加密还是解密
5,dofinal 对数据进行加密
具体API分析在写完电子钱包之后开始总结
下面是ECB加密的结果测试分析
秘钥为:00 00 00 00 08 00 00 00(是可能是8个字节)但是2DES是(16个字节)(3des是24个字节)
明文为:00 00 00 00 00 00 00 00 (为8个字节的倍数)
密文测试结果:
cbc选择不过模式下密文的结果:
ALG_DES_CBC_ISO9797_M1:
49 24 2A 11 02 F6 06 80 90 00
ALG_DES_CBC_ISO9797_M2:
49 24 2A 11 02 F6 06 80 AE 88 97 94 8E 53 58 29 90 00
ALG_DES_CBC_NOPAD:
49 24 2A 11 02 F6 06 80 90 00
ALG_DES_CBC_PKCS5:
49 24 2A 11 02 F6 06 80 90 00
填充方式:
ISO9797_M1:
明文不够8个字节会在后面填充0;
ISO9797_M2:
明文不够8个字节会在后面填充一位1;
NOPAD:
不填充;
PKCS5:
ecb选择不过模式下密文的结果:
ALG_DES_EBC_ISO9797_M1:
81 81 B6 5B AB F4 A9 75 90 00
ALG_DES_EBC_ISO9797_M2:
81 81 B6 5B AB F4 A9 75 9A 6E FF A2 A3 2D C8 A6 90 00
ALG_DES_EBC_NOPAD:
81 81 B6 5B AB F4 A9 75 90 00
ALG_DES_EBC_PKCS5:
比较复杂
0 0
- des两种加密方式讲解和测试
- 3DES 和 ECB CBC 加密方式
- 3DES 和 ECB CBC 加密方式
- 3DES 和 ECB CBC 加密方式
- 3DES 和 ECB CBC 加密方式
- DES 方式:文件加密与解密的简单测试
- DES 加密,解密方式
- DES加密解密测试
- 用python实现DES加解密,并附带EBC和CBC两种分组加密模式
- DES加密模板,和C#des加密
- [android]DES/3DES/AES加密方式
- Android DES/3DES/AES加密方式
- DES加密和解密字符串(测试可用)
- 数字信封(RSA和DES整合测试)加密技术
- DES加密和解密
- DES加密和解密
- Des加密和解密
- DES加密和解密
- 洛谷 P1403 [AHOI2005]约数研究
- Android Drawble
- ADB学习笔记
- 设计模式(三)之建造者模式(Builder) C++实现
- [生存志] 第120节 黄帝内经素问灵枢
- des两种加密方式讲解和测试
- IntelliJ IDEA 2016.3.3 配置Tomcat 运行Web项目
- 8VC Venture Cup 2017 - Elimination RoundC. PolandBall and Forest(并查集)
- redis服务启动报未知错误--UnKnown error
- LeetCode--476. Number Complement
- c++单例类
- jdbcType与javaType的对应关系
- opencv学习(二十八)之基本图像阈值操作threshold
- 小程序(之音乐播放器实现思路)