Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <stdint.h>
- #include <string.h>
- #include <openssl/sha.h>
- int main(int argc, char** argv)
- {
- int iter = 1000000;
- uint64_t dataMin;
- unsigned char outputMin[64] = {0xff};
- if(argc > 1) iter = atoi(argv[1]);
- uint64_t data = 0;
- unsigned char output[64];
- data &= 0x1f1f1f1f1f1f1f1fll;
- data |= 0x4040404040404040ll;
- for(int x=0 ; x<iter ; x++)
- {
- SHA512((unsigned char*)&data, 8, output);
- for(int i=0 ; i<64 ; i++)
- {
- if(output[i] < outputMin[i])
- {
- memcpy(outputMin, output, 64);
- dataMin = data;
- break;
- }
- else if(output[i] > outputMin[i])
- {
- break;
- }
- }
- data |= 0xe0e0e0e0e0e0e0e0ll;
- data += 1;
- data &= 0x1f1f1f1f1f1f1f1fll;
- data |= 0x4040404040404040ll;
- }
- for(int i=0 ; i<8 ; i++)
- printf("%c", ((char*)&dataMin)[i]);
- puts("");
- for(int i=0 ; i<64 ; i++)
- printf("%.2x", outputMin[i]);
- puts("");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement