如何給隨機數(shù)加密
更新時間:2013年03月07日 10:39:21 作者:
隨機數(shù)加密的簡單算法,需要的朋友可以參考一下
復制代碼 代碼如下:
// 隨機數(shù)加密算法 A^B = C , A^C =B , B^C = A 異或加密
// Etual 2011-3-14
#include <stdio.h>
// 7byte 數(shù)據(jù) 和 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 是一個隨機數(shù)
rand_digi = 0xe3; // 可以是時間戳
// 用私鑰對隨機數(shù)加密得到密文作為新的key使用
new_key = key ^ rand_digi;
// 用這個新的key對數(shù)據(jù)進行加密 加密過程
for (i=0;i<7;i++)
{
code_buf[i] ^= new_key;
}
// 這個key伴隨著數(shù)據(jù)一起傳送出去
code_buf[7] = new_key;
printf("encrypted buf is!\n");
print_buf();
//解密過程
// 假設(shè)接收端正確接收到這個已經(jīng)加密了的8字節(jié)數(shù)據(jù)
printf("now decode:\n");
// 因為最后一個字節(jié)是key,用這個對前面的數(shù)據(jù)進行解密
for (i=0;i<7;i++)
{
code_buf[i] ^= code_buf[7];
}
// 最后一個本身也是加密了的,用私鑰進行還原可以得到隨機數(shù)
code_buf[7] ^= key;
print_buf();
return 0;
}
相關(guān)文章
C++簡明圖解分析靜態(tài)成員與單例設(shè)計模式
與靜態(tài)數(shù)據(jù)成員不同,靜態(tài)成員函數(shù)的作用不是為了對象之間的溝通,而是為了能處理靜態(tài)數(shù)據(jù)成員,靜態(tài)成員函數(shù)沒有this指針。既然它沒有指向某一對象,也就無法對一個對象中的非靜態(tài)成員進行默認訪問2022-06-06