42
#include <fstream>
const char* chars16 = "0123456789ABCDEF";
struct secret {
char bytes[16];
void load(char* file) {
FILE* f = fopen(file, "r");
fread(secret, 1, 16, f);
fclose(f);
}
void save(char* file) {
FILE* f = fopen(file, "w");
fwrite(secret, 1, 16, f);
fclose(f);
}
void generate() {
int r, i, j;
for (i = 0; i < 16; i += 4) {
r = rand();
for (j = 0; j < 4; j++) {
bytes[i + j] = r & 255;
r >>= 8;
}
}
}
};
stuct otp {
};
int main() {
secret s;
s.generate();
for (int i = 0; i < 16; i++) {
printf("%c%c", chars16[s.bytes[i] >> 4], chars16[s.bytes[i] & 15]);
}
}