/*分段加密
1、欲加密的字符串str ,加密的密码encryptStr
2、将encryptStr 每个字符 异或 str 每个字符
*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
//1、分段加密
//普通加密
void encrypt(char *str) {
if (str == NULL)
return;
for (char *p = str; *p != '\0'; p++)
{
*p = *p ^ 6;
}
}
/*分段加密
1、欲加密的字符串str ,加密的密码encryptStr
2、将encryptStr 每个字符 异或 str 每个字符
*/
void subEncrypt(char * str, char * encryptStr, int strLength) {
if (str == NULL || *str == encryptStr)
return;
int encryptStrLength = strlen(encryptStr);
int remainder = strLength % encryptStrLength;
for (int i = 0; i < strLength; i++)
{
str[i] = str[i] ^ encryptStr[i % encryptStrLength];//Integer division by zero。
}
}
void main() {
char rStr[] = "I am a Stringfghss";
printf("原来的 :%s", rStr);
int strLength = strlen(rStr);
//encrypt(&rStr);
subEncrypt(rStr, "sdfsdfsefs", strLength);//encrypt
printf("\n");
printf("加密:%s", rStr);
printf("\n");
subEncrypt(rStr, "sdfsdfsefs", strLength);
printf("解密:%s", rStr);
printf("\n");
system("pause");
}