如何
加密隨機(jī)數(shù)?下文武林小編將給小伙伴們帶來(lái)隨機(jī)數(shù)加密的簡(jiǎn)單算法,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
// 隨機(jī)數(shù)加密算法? A^B = C , A^C =B , B^C = A 異或加密
?// Etual? 2011-3-14
?#include
?// 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???? {
???????? 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 是一個(gè)私鑰,兩個(gè)通訊之間各自擁有 (加密解密都需要)
???? key = 0x55;
???? // rand_digi 是一個(gè)隨機(jī)數(shù)
???? rand_digi = 0xe3;? // 可以是時(shí)間戳
???? // 用私鑰對(duì)隨機(jī)數(shù)加密得到密文作為新的key使用
???? new_key = key ^ rand_digi;
???? // 用這個(gè)新的key對(duì)數(shù)據(jù)進(jìn)行加密 加密過(guò)程
???? for (i=0;i???? {
???????? code_buf[i] ^= new_key;
???? }
???? // 這個(gè)key伴隨著數(shù)據(jù)一起傳送出去
???? code_buf[7] = new_key;
???? printf("encrypted buf is!/n");
???? print_buf();
?
?//解密過(guò)程
???? // 假設(shè)接收端正確接收到這個(gè)已經(jīng)加密了的8字節(jié)數(shù)據(jù)
???? printf("now decode:/n");
???? // 因?yàn)樽詈笠粋€(gè)字節(jié)是key,用這個(gè)對(duì)前面的數(shù)據(jù)進(jìn)行解密
???? for (i=0;i???? {
???????? code_buf[i] ^= code_buf[7];
???? }
???? // 最后一個(gè)本身也是加密了的,用私鑰進(jìn)行還原可以得到隨機(jī)數(shù)
???? code_buf[7] ^= key;
???? print_buf();
???? return 0;
?}
以上就是小編分享的如何加密隨機(jī)數(shù)的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。