set1/src/char-freq-analyze.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#include <stdint.h> #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { size_t i; int8_t ciphertext[] = "\x1b\x37\x37\x33\x31\x36\x3f\x78\x15\x1b\x7f\x2b" "\x78\x34\x31\x33\x3d\x78\x39\x78\x28\x37\x2d\x36" "\x3c\x78\x37\x3e\x78\x3a\x39\x3b\x37\x36"; uint8_t byte_freq[256]; memset(byte_freq, 0, sizeof(byte_freq)); // get histogram (count byte occurences) for (i = 0; i < sizeof(ciphertext)-1; ++i) { byte_freq[ciphertext[i]] += 1; } for (i = 0; i < sizeof(byte_freq); ++i) { if (byte_freq[i] != 0) { printf("%lx occurs %d times\n", i, byte_freq[i]); } } return EXIT_SUCCESS; } |