求3DES ECB和CBC模式加解密类,

沙鹰 2010-11-05 04:40:21
如题,向兄弟们求一个可用的3Des加解密类,Ecb模式的,我搞定了,Cbc模式的搞不定,谁又,帮忙发一个,
zhuzileepei@126.com
或我去下也行,万分感谢...
...全文
607 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
沙鹰 2011-08-15
  • 打赏
  • 举报
回复
我是谁啊?呵呵,我可是久闻麻老师大名,去年公司就不让上网了,不能经常来csdn了,郁闷中。。。
用户 昵称 2011-07-25
  • 打赏
  • 举报
回复
我知道你是谁了,嘿嘿嘿。
沙鹰 2010-11-09
  • 打赏
  • 举报
回复
感谢麻老师,自己写了一个,问题解决了
用户 昵称 2010-11-05
  • 打赏
  • 举报
回复
	for( i = 0; i < inlen; i += 8 )
{

for( j = 0; j < 8; j++ )
{
icv[ j ] ^= input[ i + j ];
}


SingleDES( icv, result + i, key, TRUE );
memcpy( icv, result + i, 8 );

}

des或3des,加密

	for( i = 0; i < inlen; i += 8 )
{
if( i > 0 )
{
memcpy( icv, input + i - 8, 8 );
}

SingleDES( input + i, result + i, key, FALSE );

for( j = 0; j < 8; j++ )
{
result[ i + j ] ^= icv[ j ];
}
}

des/3des解密,这算法、过程都是公开的。
用户 昵称 2010-11-05
  • 打赏
  • 举报
回复
先说那个0的问题,你没弄好长度,des算法针对的是二进制数据,而不是字符串数据。
沙鹰 2010-11-05
  • 打赏
  • 举报
回复
麻老师的snooper里面有3Des的功能,不知道能不能把3Des-CBC的函数发给我参考下,有点唐突了...
沙鹰 2010-11-05
  • 打赏
  • 举报
回复
过程我知道了,CBC加解密只要加解密的字符串里不包含“00”,加解密结果就正确,包含的话,加解密的结果字符串就从“00”的地方开始,后面都是000...了,急着用,想先找个用着,没时间耗时间调试了
用户 昵称 2010-11-05
  • 打赏
  • 举报
回复
来个简单点的


//
3des_encode_cbc ( 5555aaaa5555aaaa , 1122334455667788 8877665544332211 , 0102030405060708090a0b0c0d0e0f10 )
//--
triple des cbc encrypt
//--
key = 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10
//--
icv = 55 55 AA AA 55 55 AA AA plain = 11 22 33 44 55 66 77 88
//--
xor = 44 77 99 EE 00 33 DD 22 cipher = 90 38 BC 2A 2C 54 8B 47
//--
icv = 90 38 BC 2A 2C 54 8B 47 plain = 88 77 66 55 44 33 22 11
//--
xor = 18 4F DA 7F 68 67 A9 56 cipher = 1F 47 F4 5D 91 31 86 6E
//

//
3des_decode_cbc ( 5555aaaa5555aaaa , 90 38 BC 2A 2C 54 8B 47 1F 47 F4 5D 91 31 86 6E , 0102030405060708090a0b0c0d0e0f10 )
//--
triple des cbc decrypt
//--
key = 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10
//--
icv = 55 55 AA AA 55 55 AA AA cipher = 90 38 BC 2A 2C 54 8B 47
//--
plain = 44 77 99 EE 00 33 DD 22 xor = 11 22 33 44 55 66 77 88
//--
icv = 90 38 BC 2A 2C 54 8B 47 cipher = 1F 47 F4 5D 91 31 86 6E
//--
plain = 18 4F DA 7F 68 67 A9 56 xor = 88 77 66 55 44 33 22 11
//

用户 昵称 2010-11-05
  • 打赏
  • 举报
回复

//
3des_decode_cbc ( 5555aaaa5555aaaa , 2A26DF94EC0763091668F60CCCDD594784110EC2F1DD3EB3405C8CF58A5CA2D5111A25E182DC539FAAC74DE016423399188B16479EC35F04858B76645044745D905934EBD7CAB11940E9FC2250D2C230F7DFB0FA17CEF25E850EDD4BB947617A82D1AC5E03B7A4537B024A9D3CA0620F802287EB0CB9EBC1ACC9A024D20ABC56 , 0102030405060708090a0b0c0d0e0f10 )
//--
triple des cbc decrypt
//--
key = 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10
//--
icv = 55 55 AA AA 55 55 AA AA cipher = 2A 26 DF 94 EC 07 63 09
//--
plain = F1 07 E0 67 E0 CF E8 1F xor = A4 52 4A CD B5 9A 42 B5
//--
icv = 2A 26 DF 94 EC 07 63 09 cipher = 16 68 F6 0C CC DD 59 47
//--
plain = EC 67 27 5B E7 F8 3A 16 xor = C6 41 F8 CF 0B FF 59 1F
//--
icv = 16 68 F6 0C CC DD 59 47 cipher = 84 11 0E C2 F1 DD 3E B3
//--
plain = 14 C1 19 DA 69 43 EF 90 xor = 02 A9 EF D6 A5 9E B6 D7
//--
icv = 84 11 0E C2 F1 DD 3E B3 cipher = 40 5C 8C F5 8A 5C A2 D5
//--
plain = 60 70 22 B6 A3 5A 96 CB xor = E4 61 2C 74 52 87 A8 78
//--
icv = 40 5C 8C F5 8A 5C A2 D5 cipher = 11 1A 25 E1 82 DC 53 9F
//--
plain = 5F 88 60 9E CC FD 5F C4 xor = 1F D4 EC 6B 46 A1 FD 11
//--
icv = 11 1A 25 E1 82 DC 53 9F cipher = AA C7 4D E0 16 42 33 99
//--
plain = 16 9A 16 D5 1A FF DF 3C xor = 07 80 33 34 98 23 8C A3
//--
icv = AA C7 4D E0 16 42 33 99 cipher = 18 8B 16 47 9E C3 5F 04
//--
plain = B2 BD 08 9B D2 5E 9F 3C xor = 18 7A 45 7B C4 1C AC A5
//--
icv = 18 8B 16 47 9E C3 5F 04 cipher = 85 8B 76 64 50 44 74 5D
//--
plain = 75 63 26 E7 B4 2F E5 85 xor = 6D E8 30 A0 2A EC BA 81
//--
icv = 85 8B 76 64 50 44 74 5D cipher = 90 59 34 EB D7 CA B1 19
//--
plain = CF 0D 36 5C DC 8C E3 49 xor = 4A 86 40 38 8C C8 97 14
//--
icv = 90 59 34 EB D7 CA B1 19 cipher = 40 E9 FC 22 50 D2 C2 30
//--
plain = 03 78 BC 61 43 F0 96 2B xor = 93 21 88 8A 94 3A 27 32
//--
icv = 40 E9 FC 22 50 D2 C2 30 cipher = F7 DF B0 FA 17 CE F2 5E
//--
plain = 12 F6 9C 30 1C 4D 11 2F xor = 52 1F 60 12 4C 9F D3 1F
//--
icv = F7 DF B0 FA 17 CE F2 5E cipher = 85 0E DD 4B B9 47 61 7A
//--
plain = C3 2A 52 FB B3 66 F5 49 xor = 34 F5 E2 01 A4 A8 07 17
//--
icv = 85 0E DD 4B B9 47 61 7A cipher = 82 D1 AC 5E 03 B7 A4 53
//--
plain = 88 A1 B6 F0 49 9E D4 BD xor = 0D AF 6B BB F0 D9 B5 C7
//--
icv = 82 D1 AC 5E 03 B7 A4 53 cipher = 7B 02 4A 9D 3C A0 62 0F
//--
plain = D2 BD 8C 09 64 BB 75 82 xor = 50 6C 20 57 67 0C D1 D1
//--
icv = 7B 02 4A 9D 3C A0 62 0F cipher = 80 22 87 EB 0C B9 EB C1
//--
plain = E3 DD 2D BE 99 4F B1 43 xor = 98 DF 67 23 A5 EF D3 4C
//--
icv = 80 22 87 EB 0C B9 EB C1 cipher = AC C9 A0 24 D2 0A BC 56
//--
plain = A2 F2 ED F5 25 3B D3 83 xor = 22 D0 6A 1E 29 82 38 42
//
用户 昵称 2010-11-05
  • 打赏
  • 举报
回复
过程如下


//
3des_encode_cbc ( 5555aaaa5555aaaa , random ( 80 ) , 0102030405060708090a0b0c0d0e0f10 )
//----
random generate random data
//----
random = A4 52 4A CD B5 9A 42 B5 C6 41 F8 CF 0B FF 59 1F 02 A9 EF D6 A5 9E B6 D7 E4 61 2C 74 52 87 A8 78 1F D4 EC 6B 46 A1 FD 11 07 80 33 34 98 23 8C A3 18 7A 45 7B C4 1C AC A5 6D E8 30 A0 2A EC BA 81 4A 86 40 38 8C C8 97 14 93 21 88 8A 94 3A 27 32 52 1F 60 12 4C 9F D3 1F 34 F5 E2 01 A4 A8 07 17 0D AF 6B BB F0 D9 B5 C7 50 6C 20 57 67 0C D1 D1 98 DF 67 23 A5 EF D3 4C 22 D0 6A 1E 29 82 38 42
//

//--
triple des cbc encrypt
//--
key = 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10
//--
icv = 55 55 AA AA 55 55 AA AA plain = A4 52 4A CD B5 9A 42 B5
//--
xor = F1 07 E0 67 E0 CF E8 1F cipher = 2A 26 DF 94 EC 07 63 09
//--
icv = 2A 26 DF 94 EC 07 63 09 plain = C6 41 F8 CF 0B FF 59 1F
//--
xor = EC 67 27 5B E7 F8 3A 16 cipher = 16 68 F6 0C CC DD 59 47
//--
icv = 16 68 F6 0C CC DD 59 47 plain = 02 A9 EF D6 A5 9E B6 D7
//--
xor = 14 C1 19 DA 69 43 EF 90 cipher = 84 11 0E C2 F1 DD 3E B3
//--
icv = 84 11 0E C2 F1 DD 3E B3 plain = E4 61 2C 74 52 87 A8 78
//--
xor = 60 70 22 B6 A3 5A 96 CB cipher = 40 5C 8C F5 8A 5C A2 D5
//--
icv = 40 5C 8C F5 8A 5C A2 D5 plain = 1F D4 EC 6B 46 A1 FD 11
//--
xor = 5F 88 60 9E CC FD 5F C4 cipher = 11 1A 25 E1 82 DC 53 9F
//--
icv = 11 1A 25 E1 82 DC 53 9F plain = 07 80 33 34 98 23 8C A3
//--
xor = 16 9A 16 D5 1A FF DF 3C cipher = AA C7 4D E0 16 42 33 99
//--
icv = AA C7 4D E0 16 42 33 99 plain = 18 7A 45 7B C4 1C AC A5
//--
xor = B2 BD 08 9B D2 5E 9F 3C cipher = 18 8B 16 47 9E C3 5F 04
//--
icv = 18 8B 16 47 9E C3 5F 04 plain = 6D E8 30 A0 2A EC BA 81
//--
xor = 75 63 26 E7 B4 2F E5 85 cipher = 85 8B 76 64 50 44 74 5D
//--
icv = 85 8B 76 64 50 44 74 5D plain = 4A 86 40 38 8C C8 97 14
//--
xor = CF 0D 36 5C DC 8C E3 49 cipher = 90 59 34 EB D7 CA B1 19
//--
icv = 90 59 34 EB D7 CA B1 19 plain = 93 21 88 8A 94 3A 27 32
//--
xor = 03 78 BC 61 43 F0 96 2B cipher = 40 E9 FC 22 50 D2 C2 30
//--
icv = 40 E9 FC 22 50 D2 C2 30 plain = 52 1F 60 12 4C 9F D3 1F
//--
xor = 12 F6 9C 30 1C 4D 11 2F cipher = F7 DF B0 FA 17 CE F2 5E
//--
icv = F7 DF B0 FA 17 CE F2 5E plain = 34 F5 E2 01 A4 A8 07 17
//--
xor = C3 2A 52 FB B3 66 F5 49 cipher = 85 0E DD 4B B9 47 61 7A
//--
icv = 85 0E DD 4B B9 47 61 7A plain = 0D AF 6B BB F0 D9 B5 C7
//--
xor = 88 A1 B6 F0 49 9E D4 BD cipher = 82 D1 AC 5E 03 B7 A4 53
//--
icv = 82 D1 AC 5E 03 B7 A4 53 plain = 50 6C 20 57 67 0C D1 D1
//--
xor = D2 BD 8C 09 64 BB 75 82 cipher = 7B 02 4A 9D 3C A0 62 0F
//--
icv = 7B 02 4A 9D 3C A0 62 0F plain = 98 DF 67 23 A5 EF D3 4C
//--
xor = E3 DD 2D BE 99 4F B1 43 cipher = 80 22 87 EB 0C B9 EB C1
//--
icv = 80 22 87 EB 0C B9 EB C1 plain = 22 D0 6A 1E 29 82 38 42
//--
xor = A2 F2 ED F5 25 3B D3 83 cipher = AC C9 A0 24 D2 0A BC 56
//

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧