求教 利用汉字的高低字节交换对汉字加密,该怎么解决
求教 利用汉字的高低字节交换对汉字加密
请各位做一下这道题:
每一个汉字的代码占用两个字节,因此可以通过交换这两个字节的前后顺序对汉字进行加密。设计一程序,它输入一汉字字符串,先对该字符串加密并显示加密后的效果,然后再解密并显示解密后的效果(解密后的效果应与输入的字符串相同)。
MSN:fbTse@msn.com
谢谢
------解决方案--------------------
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
char test[]= "这个是一个测试。 ";
char Encrypt[20]={0}, Decrypt[20]={0};
int i, j;
printf( "The original string is: %s\n ", test);
//Encrypt
for(i=0; i <strlen(test); i+=2)
{
Encrypt[i]=test[i+1];
Encrypt[i+1]=test[i];
}
printf( "Encrypted: %s\n ", Encrypt);
//Decrypt
strcpy(Decrypt, Encrypt);
for(i=0; i <strlen(Encrypt); i+=2)
{
Decrypt[i]=Encrypt[i+1];
Decrypt[i+1]=Encrypt[i];
}
printf( "Decrypt: %s\n ", Decrypt);
printf( "\n\n ");
system( "PAUSE ");
return 0;
}
请各位做一下这道题:
每一个汉字的代码占用两个字节,因此可以通过交换这两个字节的前后顺序对汉字进行加密。设计一程序,它输入一汉字字符串,先对该字符串加密并显示加密后的效果,然后再解密并显示解密后的效果(解密后的效果应与输入的字符串相同)。
MSN:fbTse@msn.com
谢谢
------解决方案--------------------
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
char test[]= "这个是一个测试。 ";
char Encrypt[20]={0}, Decrypt[20]={0};
int i, j;
printf( "The original string is: %s\n ", test);
//Encrypt
for(i=0; i <strlen(test); i+=2)
{
Encrypt[i]=test[i+1];
Encrypt[i+1]=test[i];
}
printf( "Encrypted: %s\n ", Encrypt);
//Decrypt
strcpy(Decrypt, Encrypt);
for(i=0; i <strlen(Encrypt); i+=2)
{
Decrypt[i]=Encrypt[i+1];
Decrypt[i+1]=Encrypt[i];
}
printf( "Decrypt: %s\n ", Decrypt);
printf( "\n\n ");
system( "PAUSE ");
return 0;
}