国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

如何給隨機數加密

2020-01-26 16:21:06
字體:
來源:轉載
供稿:網友
復制代碼 代碼如下:

// 隨機數加密算法  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;
 }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 铜鼓县| 通江县| 镶黄旗| 邛崃市| 建平县| 军事| 读书| 郯城县| 尼勒克县| 靖西县| 阿拉善盟| 鹤峰县| 阿巴嘎旗| 芦溪县| 永平县| 白城市| 任丘市| 洞口县| 雅江县| 察隅县| 崇信县| 夏邑县| 奈曼旗| 柏乡县| 贞丰县| 禹州市| 古交市| 太仆寺旗| 仁化县| 保德县| 平罗县| 夏邑县| 武鸣县| 白城市| 浦东新区| 恩平市| 珲春市| 邯郸市| 玛沁县| 岳阳市| 科技|