Question: Programming in C Base 64 Encode/Decode Base-64.c #include #include #include char map(unsigned value) { if (value < 26) return 'A' + value; if (value <
Programming in C Base 64 Encode/Decode
Base-64.c
#include
char map(unsigned value) { if (value < 26) return 'A' + value; if (value < 52) return 'a' + value - 26; if (value < 62) return '0' + value - 52; if (62 == value) return '+'; if (63 == value) return '/'; return '?'; }
unsigned unmap(char c) { if ('/' == c) return 63; if ('+' == c) return 62; if (isdigit(c)) return 52 + (c - '0'); if (islower(c)) return 26 + (c - 'a'); if (isupper(c)) return 0 + (c - 'A'); return 0xFFFFFFFF; }
int main(void) { char *message = "Hello World!"; unsigned data = 062434752; // 0xCA35EA; char chars[4]; printf("DATA: %o ", data); for (int i = 0; i < 4; i++) { unsigned value = (data >> (18 - 6 * i)) & 077; chars[i] = map(value); } printf("MSG : "); for (int i = 0; i < 4; i++) { printf("%c", chars[i]); } printf(" "); data = 0; for (int i = 0; i < 4; i++) { unsigned value = unmap(chars[i]); data <<= 6; data += value; } printf("DATA: %o ", data);
return EXIT_SUCCESS; }
PR01 Write a program that accepts two command line arguments. The first is the name of a file that is to be used as the input file and the second is the name of the output file. The program is to base-64 encode the first file, which is to be treated as a binary file, into the second. The first line of the output file, which is a text file, should contain the name of the first file (so that the reconstructed data can be placed in a file of the correct name later). Your program should print to the console the total number of bytes contained in the input file.
PR02 Write a program that accepts one command line argument, which is the name of a base-64 encoded text file. The program is to base-64 decode the file, which is to be treated as a text file, outputting the result into a second file (to be treated as a binary file) using as the name the string of text read from the first line of the input file. Your program should print to the console the total number of bytes written to the output file.
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
