手机
当前位置:查字典教程网 >编程开发 >C语言 >如何给随机数加密
如何给随机数加密
摘要:复制代码代码如下://随机数加密算法A^B=C,A^C=B,B^C=A异或加密//Etual2011-3-14#include//7byte...

复制代码 代码如下:

// 随机数加密算法 A^B = C , A^C =B , B^C = A 异或加密

// Etual 2011-3-14

#include <stdio.h>

// 7byte 数据 和 1byte key

unsigned char code_buf[8] = {0x12,0x13,0x14,0x15,0x21,0x22,0x23,0x00};

void print_buf(void)

{

int i;

for (i=0;i<8;i++)

{

printf("%x,",code_buf[i]);

}

printf("n");

}

int main(void)

{

unsigned char key,new_key;

unsigned char rand_digi;

int i;

printf("original buf is!n");

print_buf();

// key 是一个私钥,两个通讯之间各自拥有 (加密解密都需要)

key = 0x55;

// rand_digi 是一个随机数

rand_digi = 0xe3; // 可以是时间戳

// 用私钥对随机数加密得到密文作为新的key使用

new_key = key ^ rand_digi;

// 用这个新的key对数据进行加密 加密过程

for (i=0;i<7;i++)

{

code_buf[i] ^= new_key;

}

// 这个key伴随着数据一起传送出去

code_buf[7] = new_key;

printf("encrypted buf is!n");

print_buf();

//解密过程

// 假设接收端正确接收到这个已经加密了的8字节数据

printf("now decode:n");

// 因为最后一个字节是key,用这个对前面的数据进行解密

for (i=0;i<7;i++)

{

code_buf[i] ^= code_buf[7];

}

// 最后一个本身也是加密了的,用私钥进行还原可以得到随机数

code_buf[7] ^= key;

print_buf();

return 0;

}

【如何给随机数加密】相关文章:

如何通过函数指针调用函数(实现代码)

如何用C语言去除字符串两边的空字符

C++ 如何用cout输出hex,oct,dec的解决方法

如何解决C语言,函数名与宏冲突

如何用矩形法(梯形法)求定积分

C语言中打印特殊图案的实现代码

如何求连续几个数之和的最大值

如何寻找数组中的第二大数

如何判断一个整数的二进制中有多少个1

C语言文件操作函数大全(超详细)

精品推荐
分类导航