DES加密算法是最被广泛使用的对称加密算法,通过示例来演示DES、TribleDES(3Key)
DES-ECB: 按8字节为单位进行加密,不足8字节补0
key: 1111111111111111
indata: 2222222222222222
OutData: 950973182317F80B
3DES-2KEY-ECB:
key: 11111111111111112222222222222222
indata: 2222222222222222
OutData: 【 A8D0B1CF0CE59870 】
3DES是一个加密-->解密-->加密的过程
so:
2222222222222222 + key 1111111111111111 加密= 950973182317F80B
950973182317F80B + key 2222222222222222 解密= 86E6896A75DB3B08
86E6896A75DB3B08 + key 1111111111111111 加密= 【 A8D0B1CF0CE59870 】
3DES-3KEY-ECB:
key: 111111111111111122222222222222223333333333333333
indata: 2222222222222222
OutData: 【 1259B7E1FEC34B9D 】
3DES是一个加密-->解密-->加密的过程
so:
2222222222222222 + key 1111111111111111 加密= 950973182317F80B
950973182317F80B + key 2222222222222222 解密= 86E6896A75DB3B08
86E6896A75DB3B08 + key 3333333333333333 加密= 【 1259B7E1FEC34B9D 】
DES-CBC: 按8字节为单位进行加密,不足8字节补0,需要初始向量
key: 1111111111111111
indata: 2222222222222222
OutData: 【950973182317F80B】
数据为16字节
key: 1111111111111111
indata: 2222222222222222 2222222222222222
OutData: 【 950973182317F80B 3F84B9ED2C2489F2 】
过程:
初始向量: 0000000000000000 + 2222222222222222 异或= 2222222222222222
2222222222222222 + key 1111111111111111 加密= 950973182317F80B
950973182317F80B + 2222222222222222 异或= B72B513A0135DA29
B72B513A0135DA29 + key 1111111111111111 加密= 3F84B9ED2C2489F2
加密结果: 【 950973182317F80B 3F84B9ED2C2489F2 】
3DES-3KEY-CBC 16bytesIndata:
key: 111111111111111122222222222222223333333333333333
indata: 22222222222222222222222222222222
OutData:【 1259B7E1FEC34B9D 37237088DF667780 】
过程:
初始向量 : 0000000000000000
1、 2222222222222222 Xor 0000000000000000 = 2222222222222222
2、 2222222222222222 Ekey 1111111111111111 = 950973182317F80B
3、 950973182317F80B Dkey 2222222222222222 = 86E6896A75DB3B08
4、 86E6896A75DB3B08 Ekey 3333333333333333 = 【 1259B7E1FEC34B9D 】
5、 2222222222222222 Xor 1259B7E1FEC34B9D = 307B95C3DCE169BF
6、 307B95C3DCE169BF Ekey 1111111111111111 = 7CAD278015FBA2E2
7、 7CAD278015FBA2E2 Dkey 2222222222222222 = 6BC2EBB29F3A6A27
8、 6BC2EBB29F3A6A27 Ekey 3333333333333333 = 【 37237088DF667780 】