Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- char *xor(char *string, char *key) {
- int i;
- int n = strlen(string);
- for( i = 0 ; i < n ; i++) {
- if(string[i] != key[i]) {
- string[i] = string[i] ^ key[i];
- }
- }
- return string;
- }
- int print_string_literal(char *s) {
- putchar('\"');
- while (*s) {
- unsigned cp = (unsigned char)*s++;
- printf("\\x%.2x", cp);
- }
- putchar('\"');
- }
- int main(int argc, char **argv[]) {
- if(argc < 3) {
- printf("Usage : %s <key> <string>\n", argv[0]);
- exit(1);
- }
- char *key = argv[1];
- char *string = argv[2];
- printf("Key: \"%s\"\n", key);
- printf("Original: \"%s\"\n", string);
- printf("Original (Hex): ");
- print_string_literal(string);
- printf("\n");
- printf("Encrypted: ");
- print_string_literal(xor(string, key));
- printf("\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement