• 大小: 438KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: C/C++
  • 标签: MD4  MD4源码  

资源简介

MD4加密算法源码 使用MD4加密一段字符串 C++源码

资源截图

代码片段和文件信息

#include
#include
#include 
#include
#define F(x y z) (((x) & (y)) | ((~x) & (z)))
#define G(x y z) (((x) & (y)) | ((x) & (z)) | ((y) & (z))) 
#define H(x y z) ((x) ^ (y) ^ (z))
//x向左循环移y位
//#define RL(x y) (((x) << (y)) | ((x) >> (32 - (y))))  
#define RL(x y) ((x) << (y)) 

#define FF(a b c d x s) a =  (RL((a + F(bcd) + x)s))
#define GG(a b c d x s) a =  (RL((a + G(bcd) + x + 0x5a827999)s))
#define HH(a b c d x s) a =  (RL((a + H(bcd) + x + 0x6ed9eba1)s))
/*
i临时变量len文件长flen[2]为64位二进制表示的文件初始长度
unsigned为32位适合x[i]的长度.
*/
unsigned ABCDabcdilenflen[2]x[16];   
char filename[200];   //文件名
FILE *fp;

void md4(){                 //MD4核心算法共48轮

  a=Ab=Bc=Cd=D;
  /**//* Round 1 */
  FF (a b c d x[ 0]  3); /**//* 1 */
  FF (d a b c x[ 1] 7); /**//* 2 */
  FF (c d a b x[ 2] 11); /**//* 3 */
  FF (b c d a x[ 3] 19); /**//* 4 */
  FF (a b c d x[ 4]  3); /**//* 5 */
  FF (d a b c x[ 5] 7); /**//* 6 */
  FF (c d a b x[ 6] 11); /**//* 7 */
  FF (b c d a x[ 7] 19); /**//* 8 */
  FF (a b c d x[ 8]  3); /**//* 9 */
  FF (d a b c x[ 9] 7); /**//* 10 */
  FF (c d a b x[10] 11); /**//* 11 */
  FF (b c d a x[11] 19); /**//* 12 */
  FF (a b c d x[12]  3); /**//* 13 */
  FF (d a b c x[13] 7); /**//* 14 */
  FF (c d a b x[14] 11); /**//* 15 */
  FF (b c d a x[15] 19); /**//* 16 */

/**//* Round 2 */
  GG (a b c d x[ 1] 3); /**//* 17 */
  GG (d a b c x[ 6] 5); /**//* 18 */
  GG (c d a b x[11] 9); /**//* 19 */
  GG (b c d a x[ 0] 13); /**//* 20 */
  GG (a b c d x[ 5] 3); /**//* 21 */
  GG (d a b c x[10] 5); /**//* 22 */
  GG (c d a b x[15] 9); /**//* 23 */
  GG (b c d a x[ 4] 13); /**//* 24 */
  GG (a b c d x[ 9] 3); /**//* 25 */
  GG (d a b c x[14] 5); /**//* 26 */
  GG (c d a b x[ 3] 9); /**//* 27 */
  GG (b c d a x[ 8] 13); /**//* 28 */
  GG (a b c d x[13] 3); /**//* 29 */
  GG (d a b c x[ 2] 5); /**//* 30 */
  GG (c d a b x[ 7] 9); /**//* 31 */
  GG (b c d a x[12] 13); /**//* 32 */

  /**//* Round 3 */
  HH (a b c d x[ 5] 3); /**//* 33 */
  HH (d a b c x[ 8] 9); /**//* 34 */
  HH (c d a b x[11] 11); /**//* 35 */
  HH (b c d a x[14] 15); /**//* 36 */
  HH (a b c d x[ 1]  3); /**//* 37 */
  HH (d a b c x[ 4] 9); /**//* 38 */
  HH (c d a b x[ 7] 11); /**//* 39 */
  HH (b c d a x[10] 15); /**//* 40 */
  HH (a b c d x[13] 3); /**//* 41 */
  HH (d a b c x[ 0] 9); /**//* 42 */
  HH (c d a b x[ 3] 11); /**//* 43 */
  HH (b c d a x[ 6] 15); /**//* 44 */
  HH (a b c d x[ 9] 3); /**//* 45 */
  HH (d a b c x[12] 9); /**//* 46 */
  HH (c d a b x[15] 11); /**//* 47 */
  HH (b c d a x[ 2] 15); /**//* 48 */

  A += a;
  B= b;
  C += c;
  D += d;

}

void main()
{
  while(1

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2011-12-06 19:13  实验四-MD4\
     文件       54784  2011-12-06 21:20  实验四-MD4\实验4    Hash 算法 MD4.doc
     目录           0  2011-12-08 19:24  实验四-MD4\Debug\
     文件       41984  2011-12-08 19:35  实验四-MD4\Debug\vc60.idb
     文件       61440  2011-12-08 19:35  实验四-MD4\Debug\vc60.pdb
     文件      188476  2011-12-08 19:35  实验四-MD4\Debug\md4.exe
     文件      558080  2011-12-08 19:35  实验四-MD4\Debug\md4.pdb
     文件           0  2011-12-08 19:35  实验四-MD4\Debug\md4.sbr
     文件      274120  2011-12-08 19:35  实验四-MD4\Debug\md4.pch
     文件       13369  2011-12-08 19:35  实验四-MD4\Debug\md4.obj
     文件      188992  2011-12-08 19:35  实验四-MD4\Debug\md4.ilk
     文件       82944  2011-12-08 19:35  实验四-MD4\Debug\md4.bsc
     文件       41984  2011-12-08 19:38  实验四-MD4\md4.ncb
     文件        1496  2011-12-08 19:35  实验四-MD4\md4.plg
     文件        5063  2011-12-08 19:26  实验四-MD4\md4.cpp
     文件      122904  2011-12-08 19:27  实验四-MD4\实验4    Hash 算法 MD4.pdf
     文件       48640  2011-12-08 19:38  实验四-MD4\md4.opt
     文件        3369  2011-12-08 19:38  实验四-MD4\md4.dsp
     文件         531  2011-12-08 19:38  实验四-MD4\md4.dsw

评论

共有 条评论