更新日期:2024-12-20H5渠道上报角色信息怎么进行加密
Q: 一些H5渠道要求加密传送角色信息以防止玩家篡改信息(目前有快快玩H5、X游戏H5、芭芭游H5、七七手游H5、爱奇游H5渠道有此要求),游戏研发在接入时怎么加密将角色信息上传给QuickSDK呢?
A: 游戏可以按如下方式进行加密:
签名拼接串(拼接的参数只需要如下示例里的,不要加别的参数)
$content = "uid=$uid&username=$username&serverId=$serverId&serverName=$serverName&userRoleId=$userRoleId&userRoleName=$userRoleName&userRoleLevel=$userRoleLevel&vipLevel=$vipLevel&gameRolePower=$gameRolePower&key=";
签名KEY
$sign_key =CP在QuickSDK后台配置的“渠道角色签名秘钥”,如下图所示,如果CP配置的值为“abc”,则签名KEY就为“abc”
计算签名
$sign_result = md5($content . $sign_key);
这里的点表示字符串拼接连接
在角色接口中投递字段名称(传MD5加密后的32位小写值):
channel_role_sign = $sign_result
比如你的角色对象是roleInfo
那么需要增加roleInfo.channel_role_sign=签名结果
最后调用QuickSDK.uploadGameRoleInfo(roleInfo, (res)=>{})
注意:
1. 游戏后端进行加密,加密后还是由前端根据H5对接文档里的角色上报接口来上传角色信息
2. 游戏后端进行加密前,需要先跟游戏前端核对下角色信息是否正确,确认正确才能进行加密,如果核对信息不符就不需要进行加密以及上报。这样便能杜绝玩家篡改角色数据的情况
3. 如果添加了channel_role_sign后依然能被篡改,那就是玩家在游戏前端首次上报等级时就篡改了信息,从而拿到了预期的sign,然后上报给QuickSDK时,再次篡改,并使用从游戏接口返回的sign,这样就达到了目的。为防止这种情况,需要游戏接口在返回sign时,要再判断下等级或者战力相关数据的合理性
李先生:13880511661
QQ:48157910
赵先生:15390049857
QQ:1077535763
孙女士:13551010407
QQ:1799614139
QQ群:698731538