key.cpp 904 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. #include<string.h>
  5. int main()
  6. {
  7. FILE* file = fopen("wordlist.txt", "w+");
  8. int length = 8;
  9. for (int length = 8; length <= 16; length++)
  10. {
  11. printf("正在生成%d位密钥,请等待\n", length);
  12. char* buffer = (char*)malloc(sizeof(char) * (length + 1));
  13. if (!buffer)
  14. {
  15. printf("申请内存失败\n");
  16. continue;
  17. }
  18. buffer[length] = '\0';
  19. for (int i = 0; i < length; i++)
  20. {
  21. buffer[i] = 33;
  22. }
  23. const int pos = length - 1;
  24. int done = 0;
  25. while (!done)
  26. {
  27. fprintf(file, "%s\n", buffer);
  28. buffer[pos]++;
  29. if ((unsigned char)buffer[pos] == 128)
  30. {
  31. buffer[pos] = 33;
  32. buffer[pos - 1]++;
  33. }
  34. for (int i = pos - 1; i > 0; i--)
  35. {
  36. if ((unsigned char)buffer[i] == 128)
  37. {
  38. buffer[i - 1]++;
  39. buffer[i] = 33;
  40. }
  41. }
  42. if ((unsigned char)buffer[0] == 128)done = 1;
  43. }
  44. }
  45. fclose(file);
  46. }