Hi,
also mein erster Ansatz stimmt sicherlich nicht, hier mal mein Testprogramm (wens interessiert):
Natürlich ohne Fehlerprüfung da einfach nur schnell hingehackt
Gruß
BK
also mein erster Ansatz stimmt sicherlich nicht, hier mal mein Testprogramm (wens interessiert):
C:
/*
* code breaker
* http://www.tutorials.de/lets-quiz/382692-hilfe-bei-textverschluesselung.html
*/
const char* data =
"..... ..... ..... ..... ******!. ?.... ..... ..... ..... .?.?! .?... ....."
"..... ..... ..... ..... ..!.? ..... ..****** !.?!! ******!? .?!.? ******!! ******!!"
"!.?.. ..... ******!. ?.... ..?.? !.?.. ..!.. ..... ..!.? ..... ..****** !.?!!"
"******!? .?!.? ******!! ******!! ******.. ..... ..... ..... ..!.. ..... ..... .!.!!"
"******.! ******!! ******!! ******!! ******.. ..... ..... .!.!! !.****** ******!! ******!! ******!!"
"!.?.. ..... ******!. ?.... ..?.? !.?.. ..... ...!. ******!! ..... ....! .?..."
"..... ..... ....! ?!!.? ******!! ******!! ******!! !?.?! .?****** ******!! ******!! ******!!"
"******!! ******!! ******.! ******!! !.?.. ..... ******!. ?.... ..?.? !.?.. ..... ....."
"!.... ..... ..... .!.!. ....! .?... ..... ..... ..****** !.?.. ..... ....."
"..?.? !.?.. ..!.. ..... !.... ..... !.?.. ..... ..****** !.?!! ******!! !?.?!"
".?!.? ..... ..... ..... ******!. ?******! ******!! ******!! ?.?!. ?******! ******!! ******!!"
"******!! ******!! ******!! .******! ******.? ..... ....! ?!!.? ..... ...?. ?!.?! ....."
"..!.! ******!! !.... ..... ..... ...!. ?.... ..... ..... .******! .?... ....."
"..... .?.?! .?... .!... ..... ..... ..!.! ******!. ?.... ..... ..... ...!?"
"!!.?! ******!! ******!! ******!! ?.?!. ?******! ******!! ******!! ******!! ******!! ******.! ******!!"
"!.?.. ..... ..****** !.?.. ..... .?.?! .?!.. ..... !.****** ******!. ..... ....."
"..... .!.?. ..... ..... ....! ?!!.? ..... ..... ....? .?!.? ....! ....."
"..... ..... !.****** !!.!! ******.. ..... ..!.? ..... ....! ?!!.? ******!! ******?."
"?!.?! ******!! ******.? ..... ....! ?!!.? ..... ...?. ?!.?. ..... !.!.. .!.!!"
"******!! ******!! !.... ...!. ******!! !!.?. ..... .******! .?****** ******?. ?!.?! ******!!"
"!.?.. ..... ..****** !.?.. ..... .?.?! .?..! .?... ..... ..... ....! ?!!.?"
"******!! ******!! ******!! !?.?! .?****** ******!! ******!! ******!! ******!! ******!! !.****** ******!."
"?.... ..... ******!. ?.... ....? .?!.? !.!.! ..... ..... ..... ..!.? ....."
"..... ...!? !!.?. ..... ..... .?.?! .?... ..... ..!.? ..... ....! ?!!.?"
"..... ...?. ?!.?. .!.!! ******!! ******!! !.****** ...!. ..... ..... ....! .?..."
"..... .******! .?****** ******!! ?.?!. ?******. ..... ..... ..... .!.?.";
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <errno.h>
char* convertToBinary(const char* data) {
size_t len = strlen(data);
size_t d_pos = 0;
size_t r_pos = 0;
char* result = (char*) malloc(sizeof(char) * (len+1));
for(; d_pos<len; d_pos++) {
switch(data[d_pos]) {
case ' ':
case '\n':
break;
case '?':
result[r_pos++] = '0';
break;
case '!':
result[r_pos++] = '1';
break;
}
}
result[r_pos] = '\0';
return realloc(result, sizeof(char) * r_pos);
}
char* binaryToString(const char* data) {
size_t d_len = strlen(data);
size_t r_len = d_len / 8;
char* result = (char*) malloc(sizeof(char) * (r_len + 1));
size_t d_pos = 0;
for(; d_pos < d_len; d_pos++) {
result[d_pos / 8] +=
data[d_pos] == '1' ? (1 << (7 - (d_pos % 8))) : 0;
}
result[r_len] = '\0';
return result;
}
void dump(const char* data) {
size_t i = 0;
size_t len = strlen(data);
while(*data != '\0')
printf("0x%02x ", *data++ & 0xFF);
return;
}
int main(int argc, const char** argv) {
char* binary = convertToBinary(data);
printf("Binär: (%zu)\n", strlen(binary));
puts(binary);
puts("");
char* ascii = binaryToString(binary);
printf("ASCII: (%zu)\n", strlen(ascii));
dump(ascii);
puts("");
free(binary);
free(ascii);
}
Natürlich ohne Fehlerprüfung da einfach nur schnell hingehackt
Gruß
BK