源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

如何给随机数加密

  • 时间:2020-07-31 01:50 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:如何给随机数加密
[u]复制代码[/u] 代码如下:
// 随机数加密算法  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;  }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部