数据传输项目(终)

1、智能指针:智能指针是再栈上分配的变量,当智能指针被回收以后,会将指针上管理的内存释放

只有当智能指针引用计数等于0时,内存才会被真正释放,如果多个智能指针指向同一块内存,智能指针技术加1

// 三种初始化方式
1. 直接使用构造函数
shared_ptr<int> ptr(new int(10));
2. 使用make_shared
shared_ptr<int> ptr1 = make_shared<int>(9)
3. 直接赋值
shared_ptr<int> ptr2 = ptr1;
get(): 获取指针值
use_count(): 智能指向的内存的引用计数(有几个智能指针指向这块内存)
reset(): 对智能指针进行重置操作, 使智能指针原有的指向修改为新的指向, 该函数会首先将
原有的内存的引用计数减1, 当减小到0的时候就会释放内存.
用法: 如ptr1.reset(pnew);

unique_ptr:只允许一个智能指针指向这块内存,用法和shared_ptr差不多

//智能指针只能管理一块内存, 要是想管理数组, 需要手动释放
//智能指针管理数组, 需要自己指定lamb表达式自己释放
shared_ptr<A> ptr4(new A[5], [](A *p) {
//释放内存
delete[]p;
});

2、外联接口的编写思路

两个网点通信需要协商报文格式

如:网点A(客户端)---->网点B(服务端)

客户端发送数据:

                报头加数据->四个字节的长度+4个字节的CLIENTID+4个字节的SERVERID+数据部分

服务端接收数据:

                先接受4个字节长度,避免粘包,然后接受后续长度

                解析报文CLIENTID+SERVERID,拿到秘钥解密数据

//服务端加密接口
int encryFun(char *mingwen ,int len,char * miwen,int &outlen,char*clientid,char *clientid,int type){
    type 用来表示加密还是解密

}

3、加密算法
1. DES--目前已经被攻破
需要的秘钥长度64bit, 8字节
分组长度8字节
2. 3DES---三重DES, 对数据进行了三次加密, 目前没有被攻破, 但是效率比较低
需要的秘钥长度64bit*3, 24字节
分组长度8字节
若3DES的三个秘钥都是相同的, 其实就相当于DES, DES是3DES的一种特例
3. AES--目前使用频率比较高的对称加密算法, 目前安全系数和安全等级比较高
需要的秘钥长度:
128bit = 16字节
192bit = 24字节
256bit = 32字节
分组长度: 128bit = 16字节

接口:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值