求3DES ECB和CBC模式加解密类, 如题,向兄弟们求一个可用的3Des加解密类,Ecb模式的,我搞定了,Cbc模式的搞不定,谁又,帮忙发一个,[email protected]或我去下也行,万分感谢... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 过程如下//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 // //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 // 来个简单点的//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 // 过程我知道了,CBC加解密只要加解密的字符串里不包含“00”,加解密结果就正确,包含的话,加解密的结果字符串就从“00”的地方开始,后面都是000...了,急着用,想先找个用着,没时间耗时间调试了 麻老师的snooper里面有3Des的功能,不知道能不能把3Des-CBC的函数发给我参考下,有点唐突了... 先说那个0的问题,你没弄好长度,des算法针对的是二进制数据,而不是字符串数据。 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解密,这算法、过程都是公开的。 我是谁啊?呵呵,我可是久闻麻老师大名,去年公司就不让上网了,不能经常来csdn了,郁闷中 dll中的 is the control is properly registered? 想请教一个关于应用程序运行的问题!!!!! 使用ScrollView,拖动滚动条,图形重叠的问题? [求助]如何删除在list control中鼠标选中的那一项? 哪位前辈可以给小弟大概讲讲VC中的Socket的简单流程? Banasoft AVPhone ActiveX 如何使用才能够进行视频流的显示? 使用ListView的疑问 win32窗口无法开启输入法是少什么属性??? atl新手求教 问题提了不止一次了!没有人能回答!追加第一次 第三方窗口响应键盘按键消息问题 关于内存DC效率
//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
//
//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
//
//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
//
{ 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解密,这算法、过程都是公开的。