加解密验证用户的合法性

前言

这章讲述 加解密验证用户的合法性, 比较适合短时间内效率并数据量较小的 验证
优点:后端不需要存储 ,不要RPC/消息 方式 去校验,增加校验效率

## 1:正常方式
游戏中 使用场景,这里先列举2种(应该有很多地方都可以用到)
1> 登录到 网关验证
(1) 前端登陆成功后,一般获取到token及网关地址(负载均衡), token 存redis或其他 ,都会设置过期时间(分钟单位就够了)
(2)如果连接网关后,网关需要需拿token去redis 验证,再得到UID,去加载相应的角色数据
2>匹配完 到 战斗房间服(eg:moba类)
(1)匹配完 会通知前端 链接 房间服的地址
(2) 链接房间服会验证下玩家是否合法

# 2:新方式验证
这里以 登录到 网关验证 为例说明(加密字段可以自行增删)
1>前端登陆成功后, 把 UID,时间戳,网关地址 服务器ID,前端IP 其他参数(没有也可以加个随机数) 以某格式生成字符串明文(json格式字符串都是可以的) ,保证密文不能太短,也不要太长
2> 明文 MD5/HASH 生成校验码
3> 明文 ASE128/256 或 ECC(登陆私钥,网关公钥) 生成密文
4> 发校验码,密文,网关地址 发给前端,前端再把 校验码,密文 发给网关
5>网关解密密文得到明文
(1) 明文格式是否正确 (该有的参数要有)
(2) 明文是否被篡改(生成校验码 比较 2个校验码)
(3) 判定时间戳是否还有效(类试redis的过期时间)
(4) 判定当前网关地址跟明文中是否一致
(5) 判定当前服务器ID跟明文中是否一致
(6) 判定前端IP跟明文中是否一致
6>得到明文中的UID 去加载相应的角色数据

#3:密钥 策略及算法
不管是ASE 还是 ECC 都是需要密钥的
1> 密钥生成
由密钥生成服务器生成密钥(一天一次),存储到数据库及redis
需要密码的服务器启动后去缓存中取,
在线的服务器订阅/MQ 等 获取
2> 策略
(1)假如 约定每天凌晨5点(找个登陆人数少的时间点就行),切换密钥
(2)密钥生成服务器,每天4点就生成(3点也行),存储起来 ,存储永远只存2组(上次的,新生成的),格式类似 生成时间(一天切换一次到天就行) 密钥
(3)5点左右的处理方式,就是用2个密钥试,类试TOKEN有效期,过某时间后就只用当天最新的密钥解密
如果还要精确点,发给前端的带上一个时间戳(去掉秒),前端也需带上这个时间戳
3>算法 一般自行评估
(1) 摘要算法选择, MD5、CRC32、SHA1,SHA256 ,个人觉得MD5够用了
(2) 加解密算法 安全性及效率 综合应用需求 综合考虑,ASE128/256 或 ECC, 个人觉得ASE128 够用了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Javasm2(Java Secure Message)是一种加解密算法和协议组合,提供了加密、解密和数字签名功能,用于保护传输的数据的安全性。Javasm2加解密对接规范是指在Java开发中,使用Javasm2算法进行加解密操作的规范和约定。 Javasm2加解密对接规范包括以下几个方面: 1. 密钥生成与管理:按照规范生成密钥对,包括公钥和私钥。公钥用于加密数据,私钥用于解密数据或生成数字签名。 2. 加密数据传输:在数据通过网络传输前,使用公钥对数据进行加密,保证数据的机密性。接收方使用相应的私钥对数据进行解密,获取原始数据。 3. 数字签名验证:发送方可以使用私钥生成数字签名,并将签名附加在数据中。接收方使用公钥验证签名的合法性,确保数据的完整性和身份认证。 4. 异常处理:规范中应包含异常处理的相关规定,如密钥生成失败、加解密失败等异常情况的处理方式。 5. 安全性保障:规范应明确标注Javasm2算法的安全性,包括安全性证书、算法的密钥长度等相关信息。 通过遵循Javasm2加解密对接规范,可以确保数据在传输和处理过程中的安全性和完整性。开发人员可以按照规范进行开发,同时保障了与其他系统的互操作性。 总之,Javasm2加解密对接规范是一个用于指导Java开发中使用Javasm2算法进行加解密操作的规范和约定。它涵盖了密钥生成与管理、加密数据传输、数字签名验证、异常处理和安全性保障等方面,确保数据的安全性和完整性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值