Python & Go AES 加密

为了保障设备通信协议的安全,选择了对称加密中的AES-256 ECB模式,因它性能高效且安全性较高。AES-ECB模式不需要向量,使用方便,采用pkcs7填充算法确保数据完整。加密后的位串经Base64编码转为字符串传输。Python服务器负责下发消息,Golang解析器处理设备上报的加密消息。
摘要由CSDN通过智能技术生成

目前考虑公司的设备通信时,需要对通信协议加密提供安全性,首先考虑有以下几点需求:

1. 因为不希望被抓包看到消息内容,所以需要能双向解密的

2. 设备与服务的所有消息都会加密,所以性能越高越好

 

所以目前就优先考虑使用对称加密,相比较非对称加密,与设备通信要求能双方都能写入和解密,并且对称加密的性能会好很多。对称加密 AES的 相对于 DES 和 3DES 密钥长度更长,安全性也更高,所以我们选择使用AES加密。

AES我们使用 ECB 模式,这种模式不需要使用向量,使用更加简单一些,密钥长度选择最长的256位,因为AES加密是以块为单位进行运算,通常一个块都是 16 位,我们选择 pkcs7 作为填充算法,这个算法主要是:

如果不满16位需要补齐到16位,如果刚好16位则需要填入完整的16位以保证数据中一定会有填充的字符,而且填充字符就是需要填充数量的ascii码值,这样在丢弃填充时直接读取最后一位的填充字符就知道需要舍弃多少长度的数据了

AES加密结果是一个位串,我们的消息协议是json的文本协议,所以加密结果在传递时,我们会将消息统一做base64编码转换成字符串进行传输,无可避免json文本协议和base64会将消息变得冗长,但是得益于运营商的流量资费越来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值