01
浅谈反编译
02
常用的方法
目前我知道的有这几种方案,仅供参考
1、利用云开发,云函数实现核心功能。
2、利用后端服务器对小程序的API接口进行验证处理。
3、使用uniapp编译成小程序,经过编译后,无法还原uniapp代码。
4、使用第三方框架开发生成代码是混淆。
5、使用分包方式上传代码,增加反编译难度。
03
小程序接口
这种方法就是利用后端服务器对小程序的API接口进行验证处理,这个code非常特殊,它每次生成都不一样,而且用过一次后便作废,本来用于获取用户与该小程序的唯一标识openid,所以这个code也是与你的appid绑定的,别人小程序生成code与你的也不能互通。通过这点,我们后台在每次接收数据时都对code进行登录验证,能登录那肯定是你小程序正常请求,不能登录呢?不是抓包的爆破你接口,就是反编译你小程序用自己appid测试的二五仔,这时我们就直接返回准备好的错误数据。
关于云开发云函数我了解不是很深入,这里就不班门弄斧了。
但是云开发云函数有人说代码可以反编译,截至目前我是没有反编译出来过,这种方法也是相当的安全。
04
API接口
大家都知道,不仅仅小程序有API接口,很多软件、程序也是存在API接口,在这过程中肯定都离不开签名验证。在签名验证的时候,发送方和接收方约定一个加密的值,进行生成签名。这里分享下代码示例,当然,高手勿喷,毕竟也是个新手,没有什么编程基础,就去年开始接触这些东西。
代码示例MD5验证:
//验证签名
if ($_REQUEST['sign'] != Createsign()){
echo '无效签名';
}else{
echo '签名正常';
}
//创建签名
function Createsign(){
$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';
$sign = '';
/*打乱字符串
$randStr = str_shuffle($str);
$substr = ubstr($randStr,0,12);
*/
$substr = substr($str,0,12);
return md5(md5($substr).md5($sign));
}
代码示例MD5、时间戳、token验证:
//token
$token=$_REQUEST['token'];
//时间戳
$timestamp=$_REQUEST['timestamp'];
//签名
$sign=$_REQUEST['sign'];
$tamp=time();
$sjc=$tamp-$timestamp;
$tokenyz=gettoken();
$signyz=md5($token.$timestamp);
if(empty($token)||empty($timestamp)) {
echo "参数不存在";
}
elseif($sjc<0 || $sjc>60){
echo "请求过期";
}
elseif($tokenyz!=$token){
echo "token验证失败";
}
elseif($signyz!=$sign){
echo "签名验证失败";
}
else{
echo "验证通过";
}
function gettoken()
{
//这里是生成token的方法
}
05
最后说明
本文由陆大湿整理自网络,如有侵权请联系客服删除!
如需转载请注明出处:陆大湿
唯一官网:bbs.ludeqi.com
1、本站所有资源均来源于互联网,不保证100%完整、不提供任何技术支持;
2、本站所发布的文章以及附件仅限用于学习和研究目的;不得将用于商业或者非法用途;否则由此产生的法律后果,本站概不负责!
谢谢大家的理解!感恩~
本篇文章来源于微信公众号: 陆大湿
© 版权声明
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 陆大湿源码解压密码