亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? md5.h

?? ice中間件 文件傳輸原代碼 更新為服務(wù)形式
?? H
?? 第 1 頁 / 共 5 頁
字號(hào):
  context->state[0] = 0x67452301;
  context->state[1] = 0xefcdab89;
  context->state[2] = 0x98badcfe;
  context->state[3] = 0x10325476;
}

void MD5Update (MD5_CTX *context, unsigned char *input, unsigned int inputLen)                    
{
  unsigned int i, index, partLen;

  index = (unsigned int)((context->count[0] >> 3) & 0x3F);

  if ((context->count[0] += ((UINT4)inputLen << 3))
   < ((UINT4)inputLen << 3))
 context->count[1]++;
  context->count[1] += ((UINT4)inputLen >> 29);

  partLen = 64 - index;

  if (inputLen >= partLen) {
 MD5_memcpy((POINTER)&context->buffer[index], (POINTER)input, partLen);
 MD5Transform (context->state, context->buffer);

 for (i = partLen; i + 63 < inputLen; i += 64)
   MD5Transform (context->state, &input[i]);
	index = 0;
  }
  else
 i = 0;
  MD5_memcpy ((POINTER)&context->buffer[index], (POINTER)&input[i], inputLen-i);
}
                                    
void MD5Final (unsigned char digest[16], MD5_CTX *context) 
{
  unsigned char bits[8];
  unsigned int index, padLen;

  Encode (bits, context->count, 8);
  index = (unsigned int)((context->count[0] >> 3) & 0x3f);
  padLen = (index < 56) ? (56 - index) : (120 - index);
  MD5Update (context, PADDING, padLen);

  MD5Update (context, bits, 8);
  Encode (digest, context->state, 16);
  MD5_memset ((POINTER)context, 0, sizeof (*context));
}

int MD5(IN	unsigned char *DataIn,IN unsigned int DataLen, OUT unsigned char DataOut[16])
{
	MD5_CTX context;
	unsigned char data[MD5_BLOCK_SIZE];

	memset(data,0,MD5_BLOCK_SIZE);
	
	MD5Init (&context);
	while(DataLen>=0)
   	{
	   if(DataLen<MD5_BLOCK_SIZE)
		{
		   MD5Update (&context, DataIn, DataLen);
		   break;
		}
   		else 
		{	memcpy(data,DataIn,MD5_BLOCK_SIZE);
			MD5Update (&context, DataIn, MD5_BLOCK_SIZE);
			DataIn += MD5_BLOCK_SIZE;
   			DataLen -=MD5_BLOCK_SIZE;
		}	
   	}
	MD5Final (DataOut, &context);
	return SUCCESS;
}





/************************************************************************/
/*SHA1函數(shù)                                                              */
/************************************************************************/
void SHA1Transform(unsigned long state[5], unsigned char buffer[64])
{
unsigned long a, b, c, d, e;
typedef union {
    unsigned char c[64];
    unsigned long l[16];
} CHAR64LONG16;
CHAR64LONG16* block;

//*#ifdef SHA1HANDSOFF
	static unsigned char workspace[64];
    block = (CHAR64LONG16*)workspace;
    memcpy(block, buffer, 64);
//#else	
    block = (CHAR64LONG16*)buffer;
//#endif

    /* Copy context->state[] to working vars */
    a = state[0];
    b = state[1];
    c = state[2];
    d = state[3];
    e = state[4];
    /* 4 rounds of 20 operations each. Loop unrolled. */
    R0(a,b,c,d,e, 0); R0(e,a,b,c,d, 1); R0(d,e,a,b,c, 2); R0(c,d,e,a,b, 3);
    R0(b,c,d,e,a, 4); R0(a,b,c,d,e, 5); R0(e,a,b,c,d, 6); R0(d,e,a,b,c, 7);
    R0(c,d,e,a,b, 8); R0(b,c,d,e,a, 9); R0(a,b,c,d,e,10); R0(e,a,b,c,d,11);
    R0(d,e,a,b,c,12); R0(c,d,e,a,b,13); R0(b,c,d,e,a,14); R0(a,b,c,d,e,15);
    R1(e,a,b,c,d,16); R1(d,e,a,b,c,17); R1(c,d,e,a,b,18); R1(b,c,d,e,a,19);
    R2(a,b,c,d,e,20); R2(e,a,b,c,d,21); R2(d,e,a,b,c,22); R2(c,d,e,a,b,23);
    R2(b,c,d,e,a,24); R2(a,b,c,d,e,25); R2(e,a,b,c,d,26); R2(d,e,a,b,c,27);
    R2(c,d,e,a,b,28); R2(b,c,d,e,a,29); R2(a,b,c,d,e,30); R2(e,a,b,c,d,31);
    R2(d,e,a,b,c,32); R2(c,d,e,a,b,33); R2(b,c,d,e,a,34); R2(a,b,c,d,e,35);
    R2(e,a,b,c,d,36); R2(d,e,a,b,c,37); R2(c,d,e,a,b,38); R2(b,c,d,e,a,39);
    R3(a,b,c,d,e,40); R3(e,a,b,c,d,41); R3(d,e,a,b,c,42); R3(c,d,e,a,b,43);
    R3(b,c,d,e,a,44); R3(a,b,c,d,e,45); R3(e,a,b,c,d,46); R3(d,e,a,b,c,47);
    R3(c,d,e,a,b,48); R3(b,c,d,e,a,49); R3(a,b,c,d,e,50); R3(e,a,b,c,d,51);
    R3(d,e,a,b,c,52); R3(c,d,e,a,b,53); R3(b,c,d,e,a,54); R3(a,b,c,d,e,55);
    R3(e,a,b,c,d,56); R3(d,e,a,b,c,57); R3(c,d,e,a,b,58); R3(b,c,d,e,a,59);
    R4(a,b,c,d,e,60); R4(e,a,b,c,d,61); R4(d,e,a,b,c,62); R4(c,d,e,a,b,63);
    R4(b,c,d,e,a,64); R4(a,b,c,d,e,65); R4(e,a,b,c,d,66); R4(d,e,a,b,c,67);
    R4(c,d,e,a,b,68); R4(b,c,d,e,a,69); R4(a,b,c,d,e,70); R4(e,a,b,c,d,71);
    R4(d,e,a,b,c,72); R4(c,d,e,a,b,73); R4(b,c,d,e,a,74); R4(a,b,c,d,e,75);
    R4(e,a,b,c,d,76); R4(d,e,a,b,c,77); R4(c,d,e,a,b,78); R4(b,c,d,e,a,79);
    /* Add the working vars back into context.state[] */
    state[0] += a;
    state[1] += b;
    state[2] += c;
    state[3] += d;
    state[4] += e;
    /* Wipe variables */
    a = b = c = d = e = 0;
}

/* SHA1Init - Initialize new context */
void SHA1Init(SHA1_CTX* context)
{
    /* SHA1 initialization constants */
    context->state[0] = 0x67452301;
    context->state[1] = 0xEFCDAB89;
    context->state[2] = 0x98BADCFE;
    context->state[3] = 0x10325476;
    context->state[4] = 0xC3D2E1F0;
    context->count[0] = context->count[1] = 0;
}

/* Run your data through this. */
void SHA1Update(SHA1_CTX* context, unsigned char* data, unsigned int len)
{
	unsigned int i, j;

    j = (context->count[0] >> 3) & 63;
    if ((context->count[0] += len << 3) < (len << 3)) context->count[1]++;
    context->count[1] += (len >> 29);
    if ((j + len) > 63) {
        memcpy(&context->buffer[j], data, (i = 64-j));
        SHA1Transform(context->state, context->buffer);
        for ( ; i + 63 < len; i += 64) {
            SHA1Transform(context->state, &data[i]);
        }
        j = 0;
    }
    else i = 0;
    memcpy(&context->buffer[j], &data[i], len - i);
}

/* Add padding and return the message digest. */
void SHA1Final(unsigned char digest[20], SHA1_CTX* context)
{
	unsigned long i, j;
	unsigned char finalcount[8];

    for (i = 0; i < 8; i++) {
        finalcount[i] = (unsigned char)((context->count[(i >= 4 ? 0 : 1)]
         >> ((3-(i & 3)) * 8) ) & 255);  /* Endian independent */
    }
    SHA1Update(context, (unsigned char *)"\200", 1);
    while ((context->count[0] & 504) != 448) {
        SHA1Update(context, (unsigned char *)"\0", 1);
    }
    SHA1Update(context, finalcount, 8);  /* Should cause a SHA1Transform() */
    for (i = 0; i < 20; i++) {
        digest[i] = (unsigned char)
         ((context->state[i>>2] >> ((3-(i & 3)) * 8) ) & 255);
    }
    /* Wipe variables */
    i = j = 0;
    memset(context->buffer, 0, 64);
    memset(context->state, 0, 20);
    memset(context->count, 0, 8);
    memset(&finalcount, 0, 8);

//	#ifdef SHA1HANDSOFF  /* make SHA1Transform overwrite it's own static vars */
		SHA1Transform(context->state, context->buffer);
//	#endif

}  
                
int SHA1(IN	unsigned char *DataIn,IN unsigned long DataLen, OUT unsigned char DataOut[20])
{
	SHA1_CTX context;
	unsigned char data[SHA1_BLOCK_SIZE];

	memset(data,0,SHA1_BLOCK_SIZE);

	SHA1Init(&context);
	while(DataLen>=0)
   	{
	   if(DataLen<SHA1_BLOCK_SIZE)
		{
		   SHA1Update(&context, DataIn, DataLen);
		   break;
		}
   		else 
		{	memcpy(data,DataIn,SHA1_BLOCK_SIZE);
			SHA1Update(&context, data, SHA1_BLOCK_SIZE);
			DataIn += SHA1_BLOCK_SIZE;
   			DataLen -=SHA1_BLOCK_SIZE;
		}	
   	}
    SHA1Final(DataOut, &context);
	return SUCCESS;
}



/************************************************************************/
/* 對(duì)稱加解密算法函數(shù)IDEA、DES、3DES、RC2、RC4	                        */
/************************************************************************/
/************************************************************************/
/*                     加密算法中的向量定義                             */
/************************************************************************/
unsigned char vi[8] = {0x84,0xA1,0x2D,0x8B,0xB3,0xFB,0x1A,0xA0};
/************************************************************************/
/* IDEA定義                                                             */
/************************************************************************/
#define mulMod				0x10001 
#define ones				0xFFFF 
#define TRUE                 1 
#define FALSE                0 

#define nomode               0 
#define ecb                  1 
#define eol					0x100
#define colon				0x101 
#define error				0x102 
#define nofChar ('~' - '!' +1) 
#define maxBufLen (Idea_dataSize * 1024) 

Idea_UserKey userKey;          
Idea_Key key;                  

int optEncrypt      = FALSE;   
int optDecrypt      = FALSE;   

#define AddInv(x)  (-x & ones)

/************************************************************************/
/* IDEA算法                                                             */
/************************************************************************/
#define Mul(a, b)                                                              \
  if (a == 0) a = mulMod - b;                                                  \
  else if (b == 0) a = mulMod - a;                                             \
  else {                                                                       \
    a *= b;                                                                    \
    if ((a & ones) >= (b = a >> 16)) a -= b;                                   \
    else a += mulMod - b;                                                      \
  } 

void Idea_Crypt (Idea_Data dataIn, Idea_Data dataOut, Idea_Key key)
{ 
  register u_int32 x0, x1, x2, x3, t0, t1, t2;
  int round;

  x0 = (u_int32)*dataIn++; x1 = (u_int32)*dataIn++;
  x2 = (u_int32)*dataIn++; x3 = (u_int32)*dataIn;
  for (round = Idea_nofRound; round > 0; round--) {
    t1 = (u_int32)*key++;
    x1 += (u_int32)*key++;
    x2 += (u_int32)*key++; x2 &= ones;
    t2 = (u_int32)*key++;
    Mul(x0, t1); x0 &= ones;
    Mul(x3, t2);
    t0 = (u_int32)*key++;
    t1 = x0 ^ x2;
    Mul(t0, t1); t0 &= ones;
    t1 = (u_int32)*key++;
    t2 = ( (x1 ^ x3) +  t0 ) & ones ;
    Mul(t1, t2); t1 &= ones;
    t0 += t1;
    x0 ^= t1; x3 ^= t0; x3 &= ones;
    t0 ^= x1; x1 = x2 ^ t1; x2 = t0;
  }
  t0 = (u_int32)*key++;
  Mul(x0, t0);
  *dataOut++ = (u_int16)(x0 & ones);
  *dataOut++ = (u_int16)((u_int32)*key++ + (x2 & ones));
  *dataOut++ = (u_int16)((u_int32)*key++ + (x1 & ones));
  t0 = (u_int32)*key;
  Mul(x3, t0);
  *dataOut = (u_int16)(x3 & ones);
}

static u_int16 MulInv (u_int16 x)
{ 
  register int32 n1, n2, N, a1, a2, b1, b2;

  if (x <= 1) return x;
  n1 = N = (int32)x; n2 = mulMod;
  a1 = b2 = 1; a2 = b1 = 0;
  do {
    while ((n1 & 1) == 0) {
      if (a1 & 1) {
        if (a1 < 0) { a1 += mulMod; b1 -= N; }
        else { a1 -= mulMod; b1 += N; }
      }
      n1 >>= 1; a1 >>= 1; b1 >>= 1;
    }
    if (n1 < n2)
      do {
        n2 -= n1; a2 -= a1; b2 -= b1;
        if (n2 == 0) return (u_int16)(a1 < 0 ? a1 + mulMod : a1);
        while ((n2 & 1) == 0) {
          if (a2 & 1) {
            if (a2 < 0) { a2 += mulMod; b2 -= N; }
            else { a2 -= mulMod; b2 += N; }
	  }
          n2 >>= 1; a2 >>= 1; b2 >>= 1;
        }
      } while (n1 <= n2);
    n1 -= n2; a1 -= a2; b1 -= b2;
  } while (n1);
  return (u_int16)(a2 < 0 ? a2 + mulMod : a2);
}

void Idea_InvertKey (Idea_Key key, Idea_Key invKey)
{ 
  register u_int16 t, *in, *out;
  register int lo, hi, i;

  in = key; out = invKey;
  lo = 0; hi = 6 * Idea_nofRound;
  t = MulInv(in[lo]); out[lo++] = MulInv(in[hi]); out[hi++] = t;
  t = AddInv(in[lo]); out[lo++] = AddInv(in[hi]); out[hi++] = t;
  t = AddInv(in[lo]); out[lo++] = AddInv(in[hi]); out[hi++] = t;
  t = MulInv(in[lo]); out[lo++] = MulInv(in[hi]); out[hi] = t;
  for (i = (Idea_nofRound - 1) / 2 ; i != 0 ; i --) {
    t = in[lo]; out[lo++] = in[hi -= 5]; out[hi ++] = t;
    t = in[lo]; out[lo++] = in[hi]; out[hi] = t;
    t = MulInv(in[lo]); out[lo++] = MulInv(in[hi -= 5]); out[hi++] = t;
    t = AddInv(in[lo]); out[lo++] = AddInv(in[++hi]); out[hi--] = t;
    t = AddInv(in[lo]); out[lo++] = AddInv(in[hi]); out[hi++] = t;
    t = MulInv(in[lo]); out[lo++] = MulInv(in[++hi]); out[hi] = t;
  }
#if (Idea_nofRound % 2 == 0)
  t = in[lo]; out[lo++] = in[hi -= 5]; out[hi++] = t;
  t = in[lo]; out[lo++] = in[hi]; out[hi] = t;
  out[lo] = MulInv(in[lo]); lo++;
  t = AddInv(in[lo]); out[lo] = AddInv(in[lo + 1]); lo++; out[lo++] = t;
  out[lo] = MulInv(in[lo]);
#else
  out[lo] = in[lo]; lo++;
  out[lo] = in[lo];
#endif
}

void Idea_ExpandUserKey (Idea_UserKey userKey, Idea_Key key)
{ 
  register int i;

#if (Idea_keyLen <= Idea_userKeyLen)
  for (i = 0; i < Idea_keyLen; i++) key[i] = userKey[i];
#else
  for (i = 0; i < Idea_userKeyLen; i++) key[i] = userKey[i];
  for (i = Idea_userKeyLen; i < Idea_keyLen; i++)
    if ((i & 7) < 6)
      key[i] = (key[i - 7] & 127) << 9 | key[i - 6] >> 7;
    else if ((i & 7) == 6)
      key[i] = (key[i - 7] & 127) << 9 | key[i - 14] >> 7; 
    else
      key[i] = (key[i - 15] & 127) << 9 | key[i - 14] >> 7; 
#endif
}

u_int32 CharToInt(char ch)
{ 
  if ('!' <= ch && ch <= '~') return ch - '!';
  else if (ch == '\0') return eol;
  else return error;
} 


void ReadKeyString(char *str,int klength)
{ 
  int i;
  u_int32 val;
  int count;
  
  for ( count = 0; count < klength; count++ )  {
	  val = CharToInt(*str++);
     for (i = Idea_userKeyLen - 1; i >= 0; i--) {
       val += (u_int32)userKey[i] * nofChar;
       userKey[i] = (u_int16)(val & 0xFFFF);
       val >>= 16;
     }
  }
  
} 


int IDEAEncrypt(IN char *in,OUT char *out,IN long length,
                    IN char *en_key)
{ 
	int i;
	long pos = 0;
	char *inPtr;
	char *outPtr;
	long en_len;
	u_int16 h;
	Idea_Data data;
	char mod_key[8];
	int count;

  for ( count = 0; count < 8; count++ )
	   mod_key[count] = '8';
   
  for (i = Idea_userKeyLen - 1; i >= 0 ; i--) 
	  userKey[i] = 0;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re成人精品视频| 亚洲丝袜精品丝袜在线| 欧美激情自拍偷拍| 午夜精品影院在线观看| 不卡的av网站| 久久―日本道色综合久久| 亚洲综合丝袜美腿| 不卡一区在线观看| 国产清纯在线一区二区www| 日韩中文欧美在线| 色综合天天综合网天天看片| 久久久久99精品国产片| 日韩av在线发布| 日本精品免费观看高清观看| 国产三级一区二区| 久久福利视频一区二区| 欧美日韩在线亚洲一区蜜芽| 亚洲欧美影音先锋| 韩国成人精品a∨在线观看| 91精品一区二区三区久久久久久| 亚洲女厕所小便bbb| 国产成人高清在线| 久久久久久久性| 韩国午夜理伦三级不卡影院| 欧美一级高清片在线观看| 五月婷婷激情综合| 欧美亚洲国产bt| 亚洲综合色自拍一区| 在线看国产一区| 一区二区三区欧美日韩| 欧美专区日韩专区| 亚洲国产欧美在线| 欧美精品在线观看播放| 日韩电影在线免费观看| 欧美一级一级性生活免费录像| 日韩成人免费电影| 日韩欧美在线网站| 激情综合网最新| 26uuu精品一区二区三区四区在线| 毛片不卡一区二区| 精品欧美一区二区久久| 国产一区二区毛片| 中文字幕国产一区| 91免费看`日韩一区二区| 一区二区在线观看免费 | 最新高清无码专区| 99热这里都是精品| 亚洲在线中文字幕| 日韩免费在线观看| 丁香天五香天堂综合| 国产精品电影一区二区| 在线精品视频一区二区| 日本中文一区二区三区| 精品成人在线观看| aaa亚洲精品| 日韩一区欧美二区| 国产女同互慰高潮91漫画| 色婷婷激情久久| 久久99热这里只有精品| 中文字幕不卡的av| 欧美性欧美巨大黑白大战| 麻豆久久久久久| 国产精品色一区二区三区| 欧美婷婷六月丁香综合色| 日本成人在线电影网| 久久久www免费人成精品| 色婷婷综合久色| 精品亚洲aⅴ乱码一区二区三区| 国产精品美女久久久久aⅴ| 在线成人小视频| 国产91精品入口| 奇米影视在线99精品| 欧美经典一区二区三区| 91精品婷婷国产综合久久竹菊| 国产69精品久久99不卡| 日本女优在线视频一区二区 | 欧美老年两性高潮| 粉嫩久久99精品久久久久久夜| 亚洲成人在线网站| 亚洲欧洲日本在线| 精品对白一区国产伦| 欧美日韩精品一区二区天天拍小说 | 日韩欧美的一区| 色网综合在线观看| 国产寡妇亲子伦一区二区| 天天综合网天天综合色| 亚洲视频你懂的| 国产女主播一区| 日韩欧美电影一二三| 欧美在线免费观看视频| 成人app软件下载大全免费| 精品一区二区影视| 五月激情综合色| 一区二区三区在线播| 1区2区3区精品视频| 国产色一区二区| 亚洲精品一区二区三区影院| 欧美高清视频一二三区 | 99久免费精品视频在线观看| 免费成人av资源网| 亚洲成av人片一区二区| 中文字幕色av一区二区三区| 欧美激情在线一区二区| 久久精品人人爽人人爽| 日韩精品一区二区三区四区视频 | 欧美亚州韩日在线看免费版国语版| 国产在线精品免费av| 久久精品国产久精国产爱| 亚洲成人在线网站| 亚洲电影欧美电影有声小说| 亚洲国产va精品久久久不卡综合| 亚洲欧美日韩中文播放| 日韩一区在线看| 一区二区三区四区视频精品免费 | 成人黄页毛片网站| 国产91对白在线观看九色| 国产成人精品免费看| 成人午夜碰碰视频| 成人美女在线视频| 99久久精品情趣| 91免费观看视频| 91久久精品一区二区三区| 91一区二区在线观看| 日本高清无吗v一区| 欧美性三三影院| 91精品国产欧美一区二区18| 欧美成人欧美edvon| 国产午夜亚洲精品羞羞网站| 中文字幕第一区二区| 日韩一区在线免费观看| 亚洲高清在线视频| 免费人成精品欧美精品| 国产一区久久久| www.久久久久久久久| 一本色道久久综合精品竹菊| 欧美丝袜第三区| 日韩三级伦理片妻子的秘密按摩| 国产日韩一级二级三级| 亚洲另类春色校园小说| 免费观看日韩av| 成人在线综合网| 欧美在线制服丝袜| 精品区一区二区| 一区二区在线观看不卡| 免费av网站大全久久| 国产高清不卡一区| 色www精品视频在线观看| 欧美一区二区久久久| 久久久久99精品一区| 亚洲夂夂婷婷色拍ww47| 国产自产高清不卡| 色一情一乱一乱一91av| 日韩一区国产二区欧美三区| 国产精品视频一区二区三区不卡| 亚洲综合激情另类小说区| 久久99精品久久只有精品| av网站一区二区三区| 欧美一区二区三区成人| 最新高清无码专区| 国产一区二区三区在线看麻豆| 一本久久精品一区二区| 337p日本欧洲亚洲大胆精品| 亚洲麻豆国产自偷在线| 国产精品自拍一区| 欧美在线观看一二区| 中文字幕巨乱亚洲| 久久99热99| 欧美日韩在线三级| 国产精品久久久久久久久免费桃花| 午夜影视日本亚洲欧洲精品| 不卡的av在线| 国产色综合一区| 乱一区二区av| 69av一区二区三区| 一区二区三区中文字幕| 成人精品一区二区三区四区| 日韩欧美一级二级三级久久久| 亚洲午夜电影在线观看| 96av麻豆蜜桃一区二区| 日本一区二区三区电影| 国产精品99久久久久久似苏梦涵 | 中文字幕在线一区二区三区| 精品一区二区在线观看| 日韩亚洲国产中文字幕欧美| 亚洲影视在线观看| 在线观看欧美黄色| 亚洲欧美日韩一区二区三区在线观看| 国产美女视频91| 久久天天做天天爱综合色| 青娱乐精品在线视频| 欧美日韩午夜在线视频| 亚洲成人中文在线| 欧美日韩精品欧美日韩精品一综合| 亚洲免费观看高清完整版在线观看 | 欧美又粗又大又爽| 亚洲免费观看高清| 欧美影院一区二区三区| 亚洲高清中文字幕| 在线不卡的av| 免费观看久久久4p|