利用异或运算实现字符串加密C语言实现

2021-05-21 16:38:31 浏览数 (2)

一个数异或另一个数两次后,该数保持不变。即: c = a^b; c = c^b; c == a;

将需要加密的内容看做A,密钥看做B,A ^ B=加密后的内容C。 而解密时只需要将C ^ 密钥B=原内容A。如果没有密钥,就不能解密! 这一规律就是使用异或运算对数据及文件进行加密处理的基本原理。

那就先贴下加密算法的代码:

C

代码语言:txt复制
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define KEY 0x86
 
int main()
{
    char p_data[16] = {"OmegaXYZ.com"};
    char Encrypt[16]={0},Decode[16]={0};
    int i;
 
    for(i = 0; i < strlen(p_data); i  )
    {
    Encrypt[i] = p_data[i] ^ KEY;
    }
 
    for(i = 0; i < strlen(Encrypt); i  )
    {
    Decode[i] = Encrypt[i] ^ KEY;
    }
 
    printf("Initial date:  %sn",p_data);
    printf("Encrypt date:  %sn",Encrypt);
    printf("Decode date:  %sn",Decode);
 
    return 0;
}

效果:

0 人点赞