#include <stdio.h>
#include <string.h>
int hideandshow(char * text,char * hiddentext) {
const unsigned char encvalues[8]={193,127,143,121,167,179,187,191};
char ch;
int i;
int eindex=0;
for (i=0;i<max;i++) {
ch=*text++;
if (ch)
*hiddentext++ = ch ^ encvalues[eindex++];
else
*hiddentext='\0';
eindex %=8;
}
return max;
}
int main(int argc, char* argv[])
{
char buffer[32]={'\0'};
char buffer2[32]={'\0'};
int index;
int maxlen = hideandshow("Hello world.",buffer);
printf("The hidden text is\n"); for (index=0;index < maxlen;index++)
printf("%2x\n",buffer
[index
] & 0xff); hideandshow(buffer,buffer2);
printf("The unhidden text is %s\n",buffer2
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCmludCBoaWRlYW5kc2hvdyhjaGFyICogdGV4dCxjaGFyICogaGlkZGVudGV4dCkgewogICAgY29uc3QgdW5zaWduZWQgY2hhciBlbmN2YWx1ZXNbOF09ezE5MywxMjcsMTQzLDEyMSwxNjcsMTc5LDE4NywxOTF9OwoJY2hhciBjaDsKCWludCBtYXg9c3RybGVuKHRleHQpOwoJaW50IGk7CglpbnQgZWluZGV4PTA7Cglmb3IgKGk9MDtpPG1heDtpKyspIHsKCQljaD0qdGV4dCsrOwoJCWlmIChjaCkKCQkJKmhpZGRlbnRleHQrKyA9IGNoIF4gZW5jdmFsdWVzW2VpbmRleCsrXTsKCQllbHNlCgkJCSpoaWRkZW50ZXh0PSdcMCc7CgkJZWluZGV4ICU9ODsKCX0KCXJldHVybiBtYXg7Cn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCnsgIAoJY2hhciBidWZmZXJbMzJdPXsnXDAnfTsKCWNoYXIgYnVmZmVyMlszMl09eydcMCd9OwoJaW50IGluZGV4OwoJaW50IG1heGxlbiA9IGhpZGVhbmRzaG93KCJIZWxsbyB3b3JsZC4iLGJ1ZmZlcik7CiAgICBwcmludGYoIlRoZSBoaWRkZW4gdGV4dCBpc1xuIik7Cglmb3IgKGluZGV4PTA7aW5kZXggPCBtYXhsZW47aW5kZXgrKykKCSAgcHJpbnRmKCIlMnhcbiIsYnVmZmVyW2luZGV4XSAmIDB4ZmYpOwoJaGlkZWFuZHNob3coYnVmZmVyLGJ1ZmZlcjIpOwoJcHJpbnRmKCJUaGUgdW5oaWRkZW4gdGV4dCBpcyAlc1xuIixidWZmZXIyKTsKCXJldHVybiAwOwp9