md5prog.c
上传用户:zbbssh
上传日期:2007-01-08
资源大小:196k
文件大小:1k
源码类别:

CA认证

开发平台:

C/C++

  1. #pragma ident "@(#)md5prog.c 1.2 95/11/18"
  2. /* Main program to do md5 encryption using Colin Plumbs MD5 routines */
  3. #include <sys/types.h>
  4. #include <stdio.h>
  5. typedef unsigned char byte;
  6. #include "md5.h"
  7. md5it(FILE *fp, byte *digest)
  8. {
  9. u_char buf[1024];
  10. size_t n;
  11. struct xMD5Context c;
  12. xMD5Init(&c);
  13. do {
  14. n=fread((void *)buf, 1, 1024, fp);
  15. if (n > 0)
  16. xMD5Update(&c, (byte *)buf, n);
  17. } while (n);
  18. xMD5Final((byte *)digest, &c);
  19. }
  20. m_print(byte digest[]) {
  21. int i;
  22. for (i=0; i< 16; i++)
  23. printf("%02x", digest[i]);
  24. }
  25. main(int argc,const char *argv[])
  26. {
  27. byte digest[16];
  28. int i;
  29. FILE *fp;
  30. if (argc == 1){
  31. md5it(stdin, digest);
  32. m_print(digest);
  33. printf("n");
  34. exit(0);
  35. }
  36. for (i=1; i<argc; i++) {
  37. fp=fopen(argv[i],"r");
  38. if (fp == NULL) {
  39. printf("error opening %sn",argv[i]);
  40. continue;
  41. }
  42. md5it(fp,digest);
  43. printf("MD5 (%s) = ",argv[i]);
  44. m_print(digest);
  45. printf("n");
  46. fclose(fp);
  47. }
  48. }