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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mddriver.c

?? 獲取硬盤序列號的VC++源程序 DiskInfo.zip
?? C
字號:
/* MDDRIVER.C - test driver for MD2, MD4 and MD5
 */

/* Copyright (C) 1990-2, RSA Data Security, Inc. Created 1990. All
rights reserved.

RSA Data Security, Inc. makes no representations concerning either
the merchantability of this software or the suitability of this
software for any particular purpose. It is provided "as is"
without express or implied warranty of any kind.

These notices must be retained in any copies of any part of this
documentation and/or software.
 */

/* The following makes MD default to MD5 if it has not already been
  defined with C compiler flags.
 */
#ifndef MD
#define MD MD5
#endif

#include <stdio.h>
#include <time.h>
#include <string.h>
#include <sys/types.h>
#include "global.h"
#if MD == 2
#include "md2.h"
#endif
#if MD == 4
#include "md4.h"
#endif
#if MD == 5
#include "md5.h"
#endif

/* Length of test block, number of test blocks.
 */
#define TEST_BLOCK_LEN 1000
#define TEST_BLOCK_COUNT 1000

static void MDString PROTO_LIST ((char *));
static void MDTimeTrial PROTO_LIST ((void));
static void MDTestSuite PROTO_LIST ((void));
static void MDFile PROTO_LIST ((char *));
static void MDFilter PROTO_LIST ((void));
static void MDPrint PROTO_LIST ((unsigned char [16]));

#if MD == 2
#define MD_CTX MD2_CTX
#define MDInit MD2Init
#define MDUpdate MD2Update
#define MDFinal MD2Final
#endif
#if MD == 4
#define MD_CTX MD4_CTX
#define MDInit MD4Init
#define MDUpdate MD4Update
#define MDFinal MD4Final
#endif
#if MD == 5
#define MD_CTX MD5_CTX
#define MDInit MD5Init
#define MDUpdate MD5Update
#define MDFinal MD5Final
#endif

/* Main driver.

Arguments (may be any combination):
  -sstring - digests string
  -t       - runs time trial
  -x       - runs test script
  -b       - print MD5 sum in binary on stdout
  filename - digests file
  (none)   - digests standard input
 */

short bflag = 0;	/* 1 == print sums in binary */

int main (argc, argv)
int argc;
char *argv[];
{
  int i;

  if (argc > 1)
 for (i = 1; i < argc; i++)
   if (argv[i][0] == '-' && argv[i][1] == 's')
     MDString (argv[i] + 2);
   else if (strcmp (argv[i], "-t") == 0)
     MDTimeTrial ();
   else if (strcmp (argv[i], "-x") == 0)
     MDTestSuite ();
   else if (strcmp (argv[i], "-b") == 0)
     bflag = 1;
   else
     MDFile (argv[i]);
  else
 MDFilter ();

  return (0);
}

/* Digests a string and prints the result.
 */
static void MDString (string)
char *string;
{
  MD_CTX context;
  unsigned char digest[16];
  unsigned int len = strlen (string);

  MDInit (&context);
  MDUpdate (&context, string, len);
  MDFinal (digest, &context);

  if (!bflag) printf ("MD%d (\"%s\") = ", MD, string);
  MDPrint (digest);
  if (!bflag) printf ("\n");
}

/* Measures the time to digest TEST_BLOCK_COUNT TEST_BLOCK_LEN-byte
  blocks.
 */
static void MDTimeTrial ()
{
  MD_CTX context;
  time_t endTime, startTime;
  unsigned char block[TEST_BLOCK_LEN], digest[16];
  unsigned int i;

  printf
 ("MD%d time trial. Digesting %d %d-byte blocks ...", MD,
  TEST_BLOCK_LEN, TEST_BLOCK_COUNT);

  /* Initialize block */
  for (i = 0; i < TEST_BLOCK_LEN; i++)
 block[i] = (unsigned char)(i & 0xff);

  /* Start timer */
  time (&startTime);

  /* Digest blocks */
  MDInit (&context);
  for (i = 0; i < TEST_BLOCK_COUNT; i++)
 MDUpdate (&context, block, TEST_BLOCK_LEN);
  MDFinal (digest, &context);

  /* Stop timer */
  time (&endTime);

  printf (" done\n");
  printf ("Digest = ");
  MDPrint (digest);
  printf ("\nTime = %d seconds\n", (time_t)(endTime-startTime));
  /*
   * Be careful that endTime-startTime is not zero.
   * (Bug fix from Ric Anderson, ric@Artisoft.COM.)
   */
  printf
 ("Speed = %d bytes/second\n",
  (time_t)TEST_BLOCK_LEN * (time_t)TEST_BLOCK_COUNT/((endTime-startTime) != 0 ? (endTime-startTime):1));
}

/* Digests a reference suite of strings and prints the results.
 */
static void MDTestSuite ()
{
  printf ("MD%d test suite:\n", MD);

  MDString ("");
  MDString ("a");
  MDString ("abc");
  MDString ("message digest");
  MDString ("abcdefghijklmnopqrstuvwxyz");
  MDString
 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");
  MDString
 ("1234567890123456789012345678901234567890\
1234567890123456789012345678901234567890");
}

/* Digests a file and prints the result.
 */
static void MDFile (filename)
char *filename;
{
  FILE *file;
  MD_CTX context;
  int len;
  unsigned char buffer[1024], digest[16];

  if ((file = fopen (filename, "rb")) == NULL)
 printf ("%s can't be opened\n", filename);

  else {
 MDInit (&context);
 while (len = fread (buffer, 1, 1024, file))
   MDUpdate (&context, buffer, len);
 MDFinal (digest, &context);

 fclose (file);

 if (!bflag) printf ("MD%d (%s) = ", MD, filename);
 MDPrint (digest);
 if (!bflag) printf ("\n");
  }
}

/* Digests the standard input and prints the result.
 */
static void MDFilter ()
{
  MD_CTX context;
  int len;
  unsigned char buffer[16], digest[16];

  MDInit (&context);
  while (len = fread (buffer, 1, 16, stdin))
 MDUpdate (&context, buffer, len);
  MDFinal (digest, &context);

  MDPrint (digest);
  if (!bflag) printf ("\n");
}

/* Prints a message digest in hexadecimal or binary.
 */
static void MDPrint (digest)
unsigned char digest[16];
{
  unsigned int i;

  if (bflag) {
	/* print in binary */
	write(1, &digest[0], 16);
  } else {
	/* print in hex */
	for (i = 0; i < 16; i++)
		printf ("%02x", digest[i]);
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费视频免费观看| 欧美另类z0zxhd电影| 一区二区在线观看av| 精品一区二区在线免费观看| 亚洲欧美激情小说另类| 久久久蜜臀国产一区二区| 欧美唯美清纯偷拍| 波多野结衣一区二区三区| 国产欧美日韩在线看| 欧美性一级生活| 成人激情小说乱人伦| 久久爱另类一区二区小说| 一区二区三区四区视频精品免费 | 国产肉丝袜一区二区| 精品视频全国免费看| 国产精品亚洲一区二区三区在线 | 亚洲毛片av在线| 国产欧美综合色| 国产午夜精品福利| 欧美一级黄色片| 91精品国产综合久久精品麻豆 | 不卡的av中国片| 国产乱码精品1区2区3区| 久久电影网电视剧免费观看| 午夜免费久久看| 亚洲成人一区二区在线观看| 夜夜精品视频一区二区 | 91亚洲精品乱码久久久久久蜜桃| 激情综合网最新| 另类欧美日韩国产在线| 日韩av网站免费在线| 天堂成人免费av电影一区| 亚洲国产精品久久久久秋霞影院| 中文字幕欧美一区| 亚洲免费观看高清完整版在线观看| 中文字幕欧美国产| 中文字幕在线播放不卡一区| 1000精品久久久久久久久| 亚洲乱码日产精品bd| 国产午夜精品一区二区三区四区| 一区二区三区在线播放| 国产凹凸在线观看一区二区| 欧美日韩在线三级| 国产精品欧美久久久久无广告| 丝袜脚交一区二区| 日本韩国一区二区三区| 国产日韩欧美综合一区| 毛片不卡一区二区| 欧美亚洲综合久久| 1区2区3区国产精品| 国产成人在线色| 日韩一区国产二区欧美三区| 亚洲午夜影视影院在线观看| 成人h版在线观看| 2020国产精品自拍| 久久激情五月婷婷| 日韩一区二区视频在线观看| 亚洲午夜在线电影| 在线精品视频小说1| 亚洲欧洲日本在线| av一区二区三区在线| 国产欧美一区二区精品性| 精品一二三四在线| 精品精品欲导航| 免费观看在线综合| 精品日韩在线一区| 蜜桃在线一区二区三区| 欧美精品久久天天躁| 天天色综合天天| 在线不卡一区二区| 日本特黄久久久高潮| 91精品国产色综合久久久蜜香臀| 亚洲国产精品久久不卡毛片| 欧美色视频在线| 午夜视黄欧洲亚洲| 日韩欧美你懂的| 久久国内精品视频| 国产亚洲精品久| 成人免费福利片| 国产精品国产成人国产三级| 99久久婷婷国产精品综合| 最新久久zyz资源站| 99国产精品久久| 夜夜嗨av一区二区三区网页| 欧美三级乱人伦电影| 免费xxxx性欧美18vr| 久久―日本道色综合久久| 国产精品一区专区| 国产精品美女久久久久av爽李琼| 色综合久久久久久久| 夜夜夜精品看看| 日韩一二三区视频| 国产老妇另类xxxxx| 国产精品视频一二三区 | 在线亚洲免费视频| 日韩国产欧美三级| 久久久777精品电影网影网 | 欧美午夜精品久久久| 日韩av不卡在线观看| 久久久高清一区二区三区| 97国产一区二区| 美女精品一区二区| 国产精品久久久久久福利一牛影视 | 久久se精品一区精品二区| 日本一区二区三区国色天香 | 国产综合色在线视频区| 国产精品麻豆欧美日韩ww| 欧美色图激情小说| 经典三级一区二区| 一区二区三区色| 久久综合久久鬼色| 欧美在线观看禁18| 国产精品中文字幕日韩精品| 亚洲国产综合色| 久久免费的精品国产v∧| 欧美日韩情趣电影| 99久久久精品| 久久99九九99精品| 亚洲高清不卡在线观看| 欧美韩国一区二区| 538prom精品视频线放| 色综合色综合色综合色综合色综合 | 欧美美女一区二区三区| 高清不卡一区二区| 日韩专区中文字幕一区二区| 国产精品女主播av| 精品国产一区二区亚洲人成毛片 | 97久久久精品综合88久久| 免费在线观看成人| 中文字幕亚洲一区二区va在线| 精品久久久久av影院| 欧美一区二区久久久| 在线视频一区二区三| 99久久99久久精品免费看蜜桃| 国产裸体歌舞团一区二区| 免费在线视频一区| 同产精品九九九| 亚洲丶国产丶欧美一区二区三区| 中文字幕亚洲一区二区va在线| 欧美激情一区二区三区| 国产婷婷一区二区| 精品成人免费观看| 欧美一区二区三区四区久久| 欧美午夜影院一区| 欧美日韩一区二区在线观看视频 | 26uuu精品一区二区| 精品99999| 日韩免费性生活视频播放| 欧美日韩日日夜夜| 91麻豆精品国产91久久久久久| 欧美人牲a欧美精品| 欧美日韩高清不卡| 777a∨成人精品桃花网| 欧美精品在线视频| 8v天堂国产在线一区二区| 5月丁香婷婷综合| 欧美成人精品1314www| 精品国产一区a| 国产精品三级久久久久三级| 中文字幕在线播放不卡一区| 亚洲免费资源在线播放| 亚洲国产日韩一级| 日本不卡的三区四区五区| 久久99国产精品久久99 | 午夜精品福利一区二区三区蜜桃| 亚洲a一区二区| 美女视频第一区二区三区免费观看网站| 全国精品久久少妇| 国产a精品视频| 日本乱人伦aⅴ精品| 日韩午夜精品电影| 国产日产欧产精品推荐色| 国产精品成人免费| 香蕉影视欧美成人| 激情图区综合网| 成人av高清在线| 欧美午夜在线观看| 亚洲精品一区二区三区精华液| 国产精品国产三级国产aⅴ中文| 亚洲精品伦理在线| 久久99精品久久久| 94色蜜桃网一区二区三区| 欧美精品18+| 国产精品视频一二| 日韩精品一区第一页| 国产成人免费视频网站| 欧美无乱码久久久免费午夜一区| 精品成人私密视频| 亚洲自拍偷拍综合| 国产一区二区三区四| 精品视频在线视频| 国产欧美一区二区三区鸳鸯浴| 亚洲国产一区二区a毛片| 国产精品一区二区在线播放| 色老综合老女人久久久| 国产日韩欧美精品在线| 日本亚洲天堂网| 日本韩国欧美一区二区三区| 国产亚洲人成网站| 欧美bbbbb|