时间:2021-05-19
复制代码 代码如下:
// 随机数加密算法 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;
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
如何用php生成1-10之间的不重复随机数?例1,使用shuffle函数生成随机数。例2,使用array_unique函数生成随机数。php随机数生成函数示例
分享下php生成随机数的三种方法,生成1-10之间的不重复随机数,php生成不重复随机数的例子,需要的朋友参考下。如何用php生成1-10之间的不重复随机数?例
srand()设置随机数种子rand()生成0-RAND_MAX范围的随机数加上其他运算,我们能够生成任意范围的随机数。rand()是将随机数表里面的随机数顺序
内核随机数产生器Linux内核实现了一个随机数产生器,从理论上说这个随机数产生器产生的是真随机数。与标准C库中的rand(),srand()产生的伪随机数不同,
随机数是我们在程序中经常要用到的,cocos2d-x用CCRANDOM_0_1产生随机数,但我们最后给它传入一个随机数种子,这样产生的随机数才是真正的随机数,而