自定义协议-加密与解析

本文介绍了如何设计和实现一个自定义的加密协议,包括协议的组成结构、加密解密流程,以及具体的数据处理和校验步骤。通过DES加密算法确保数据安全,详细解释了协议的生成和解析过程。
摘要由CSDN通过智能技术生成

网上经常要用到数据加密的功能,自定义协议加密解析往往才是安全的。

最近上班也在弄这个东东,闲话不多说。


一、基础自定义协议

协议组成结构

协议组成结构为:起始符 标题 账号 密码 时间 校验码 结束符。


起始结束符

所有的协议开始和结束符都采用BE开始BE结束。

(这里可以由自己设计,如果涉及到同时发送多条协议的时候或者有出现协议不完整等情况。可以采用代替:如中间BE用BD02表示,BD用BD01表示


标题

标题规则属性:协议类型+协议长度+账号长度+密码长度

协议类型:01 = 用户聊天工具登录类型

协议长度:整条协议的总字符长度。

账号长度:账号字符长度。

密码长度:密码字符长度。

 

标题采用字符长度8存储各信息。每两个字符采用十六进制以字符的方式表达。

例如:011C0A0B

01:协议聊天工具登录类型。

1C:十六进制转十进制等于28,代表该协议总字符长度为28

0A:同上,账号长度为10

0B:同上,密码长度为11


账号密码

账号密码采用DES加密后字符串。


时间

时间格式yyyyMMddHHmmss进行DES加密后的字符串。


校验码

校验码为协议体(不包含校验码,起始结束符)按照字符两位向后异或最后所得的十六进制字符。



二、协议生成

第一步:

账号、密码、时间进行DES加密。然后存储各个加密后的字符长度。


第二步:

组装协议标题,把各个长度转换成十六进制,填充标题。

注:总长度为=账号密码时间总长度 起始结束长度4 + 校验码长度2 + 标题长度8


第三步:

从标题到时间的进行异或得出校验码。


第四步:

加上起始结束符,并组装整个协议字符串。


 

三、协议解析

第一步:

判断协议起始结束字符是否有效。


第二步:

获取协议校验码(倒数3,4位),获取协议体(第3位开始到倒数第5位)进行异或和比较,判断协议是否有效。


第三步:

获取协议标题(第310位),得出协议体属性。


第四步:

根据协议体属性,获取账号密码时间,进行DES解密。



这只是个基础的协议,需要复杂的可以在这个基础上根据自己的需求更改添加更多的复杂属性。


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值