Vue.js+SpringBoot开发APK检测管理系统

在这里插入图片描述


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 数据中心模块
    • 2.2 开放平台模块
    • 2.3 软件档案模块
    • 2.4 软件检测模块
    • 2.5 软件举报模块
  • 三、系统设计
    • 3.1 用例设计
    • 3.2 数据库设计
      • 3.2.1 开放平台表
      • 3.2.2 软件档案表
      • 3.2.3 软件检测表
      • 3.2.4 软件举报表
  • 四、系统展示
  • 五、核心代码
    • 5.1 查询开放平台
    • 5.2 新增开放平台
    • 5.3 查询软件档案
    • 5.4 新增软件举报
    • 5.5 新增软件检测
  • 六、免责说明


一、摘要

1.1 项目介绍

基于JAVA+Vue+SpringBoot+MySQL的APK检测管理系统,包含了软件档案模块、软件检测模块、软件举报模块、开放平台模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,APK检测管理系统基于角色的访问控制,给软件管理员、普通用户使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

随着移动应用的迅猛发展,APK文件的数量和复杂性日益增加,给应用市场的安全性和稳定性带来了巨大挑战。为了提高APK文件的检测效率和准确性,本论文提出了一种基于大数据和机器学习的APK检测系统。该系统利用大数据技术对海量的APK文件进行收集和存储,并采用特征提取和特征选择方法对APK文件进行表征。通过构建一个深度学习模型,对APK文件进行分类和检测,以识别潜在的恶意软件和安全隐患。实验结果表明,该系统在APK检测的准确性和效率方面表现出色,对于提高移动应用的安全性具有重要意义。

1.2 项目录屏


二、功能模块

APK检测系统的功能性需求主要包含数据中心模块、开放平台模块、软件档案模块、软件检测模块、软件举报模块这五大模块,系统是基于浏览器运行的web管理后端,其中各个模块详细说明如下。

在这里插入图片描述

2.1 数据中心模块

数据中心模块包含了APK检测系统的系统基础配置,如登录用户的管理、运营公司组织架构的管理、用户菜单权限的管理、系统日志的管理、公用文件云盘的管理。
其中登录用户管理模块,由管理员负责运维工作,管理员可以对登录用户进行增加、删除、修改、查询操作。
组织架构,指的是高校的组织架构,该模块适用于管理这些组织架构的部门层级和教师的部门归属情况。
用户菜单权限管理模块,用于管理不同权限的用户,拥有哪些具体的菜单权限。
系统日志的管理,用于维护用户登入系统的记录,方便定位追踪用户的操作情况。
公用云盘管理模块,用于统一化维护APK检测系统中的图片,如合同签订文件、合同照片等等。

2.2 开放平台模块

开放平台是一种三方接口平台,支持其他用户通过API接口的方式调用系统功能,开放平台的数据包括主体名称、主体介绍、应用ID、密匙、创建人、创建时间、更新人、更新时间,管理员可以新增、删除、编辑和条件查询开放平台数据,用户可以查询管理员发布的开放平台数据。

2.3 软件档案模块

软件是APK检测系统的核心实体,需要建立软件档案模块对用户发布的软件进行管理,软件档案的字段包括软件名称、软件介绍、开发者、文件、创建人、创建时间、更新人、更新时间,管理员可以新增、删除、编辑和条件查询软件数据,用户可以查询管理员发布的软件数据,且可以上传自己的软件。

2.4 软件检测模块

有了软件档案之后,就需要对软件进行检测,用户提交软件检测申请后,保存在软件检测模块,软件检测的字段包括软件ID、软件名称、软件介绍、开发者、检测状态、检测时间、检测人、检测结论,管理员收到用户的软件检测申请后进行检测,并将检测结论录入到系统中。

2.5 软件举报模块

除了用于提交软件检测申请之外,还支持用户直接举报软件,管理员对齐进行判定,举报的数据存储在软件举报模块中,软件举报字段包括软件ID、软件名称、软件介绍、开发者、举报内容、处理结果、处理人、处理时间,用户可以提交软件举报申请,管理员对用户举报的申请订单进行核实。


三、系统设计

3.1 用例设计

UML是面向对象的图形化建模语言,具有表示容易,定义友好,适用范畴广泛,功能强大。用例图是用例模型的一种,需求分析人员可采用用例图表示用户操作行为。APK检测系统的用例图设计主要包括用户用例设计和管理员用例设计。

在这里插入图片描述

3.2 数据库设计

3.2.1 开放平台表

在这里插入图片描述

3.2.2 软件档案表

在这里插入图片描述

3.2.3 软件检测表

在这里插入图片描述

3.2.4 软件举报表

在这里插入图片描述


四、系统展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


五、核心代码

5.1 查询开放平台

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询开放平台")
public Result<IPage<OpenPlatform>> getByPage(@ModelAttribute OpenPlatform openPlatform ,@ModelAttribute PageVo page){QueryWrapper<OpenPlatform> qw = new QueryWrapper<>();User currUser = securityUtil.getCurrUser();QueryWrapper<User> userQw = new QueryWrapper<>();userQw.eq("id",currUser.getId());userQw.inSql("id","SELECT user_id FROM a_user_role WHERE del_flag = 0 AND role_id = '1536606659751841799'");if(iUserService.count(userQw) < 1L) {qw.eq("user_id",currUser.getId());}if(!ZwzNullUtils.isNull(openPlatform.getTitle())) {qw.like("title",openPlatform.getTitle());}if(!ZwzNullUtils.isNull(openPlatform.getStatus())) {qw.eq("status",openPlatform.getStatus());}IPage<OpenPlatform> data = iOpenPlatformService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<OpenPlatform>>().setData(data);
}

5.2 新增开放平台

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增开放平台")
public Result<OpenPlatform> insert(OpenPlatform openPlatform){User currUser = securityUtil.getCurrUser();openPlatform.setUserId(currUser.getId());openPlatform.setTime(DateUtil.now());Random r = new Random();int ranInt = r.nextInt(90000) + 10000;openPlatform.setAppid(ranInt + "");openPlatform.setSecret(UUID.randomUUID().toString());iOpenPlatformService.saveOrUpdate(openPlatform);return new ResultUtil<OpenPlatform>().setData(openPlatform);
}

5.3 查询软件档案

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询软件档案")
public Result<IPage<Software>> getByPage(@ModelAttribute Software software ,@ModelAttribute PageVo page){QueryWrapper<Software> qw = new QueryWrapper<>();User currUser = securityUtil.getCurrUser();QueryWrapper<User> userQw = new QueryWrapper<>();userQw.eq("id",currUser.getId());userQw.inSql("id","SELECT user_id FROM a_user_role WHERE del_flag = 0 AND role_id = '1536606659751841799'");if(iUserService.count(userQw) < 1L) {qw.eq("user_id",currUser.getId());}if(!ZwzNullUtils.isNull(software.getTitle())) {qw.like("title",software.getTitle());}if(!ZwzNullUtils.isNull(software.getContent())) {qw.like("content",software.getContent());}IPage<Software> data = iSoftwareService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<Software>>().setData(data);
}

5.4 新增软件举报

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增软件举报")
public Result<SoftwareReport> insert(SoftwareReport softwareReport){Software s = iSoftwareService.getById(softwareReport.getSoftId());if(s == null) {return ResultUtil.error("软件不存在");}User currUser = securityUtil.getCurrUser();softwareReport.setUserId(currUser.getId());softwareReport.setTitle(s.getTitle());softwareReport.setContent(s.getContent());softwareReport.setDeveloper(s.getDeveloper());softwareReport.setFileUrl(s.getFileUrl());softwareReport.setWorkResult("");softwareReport.setWorkUser("");softwareReport.setWorkTime("");iSoftwareReportService.saveOrUpdate(softwareReport);return new ResultUtil<SoftwareReport>().setData(softwareReport);
}

5.5 新增软件检测

@RequestMapping(value = "/addOne", method = RequestMethod.POST)
@ApiOperation(value = "新增软件检测")
public Result<SoftwareCheck> addOne(@RequestParam String id){Software s = iSoftwareService.getById(id);if(s == null) {return ResultUtil.error("软件不存在");}SoftwareCheck softwareCheck = new SoftwareCheck();softwareCheck.setTitle(s.getTitle());softwareCheck.setContent(s.getContent());softwareCheck.setDeveloper(s.getDeveloper());softwareCheck.setFileUrl(s.getFileUrl());softwareCheck.setStatus("未检测");softwareCheck.setCheckTime("");softwareCheck.setCheckUser("");softwareCheck.setCheckResult("");iSoftwareCheckService.saveOrUpdate(softwareCheck);return new ResultUtil<SoftwareCheck>().setData(softwareCheck);
}

六、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/541129.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python数据分析-Numpy2

1.numpy读取数据 CSV:Comma-SeparatedValue,逗号分隔值文件 显示&#xff1a;表格状态 源文件&#xff1a;换行和逗号分隔行列的格式化文本,每一行的数据表示一条记录 由于csv便于展示,读取和写入,所以很多地方也是用csv的格式存储和传输中小型的数据,为了方便教学,我们会经…

L1-5 试试手气 【Java】

我们知道一个骰子有 6 个面&#xff0c;分别刻了 1 到 6 个点。下面给你 6 个骰子的初始状态&#xff0c;即它们朝上一面的点数&#xff0c;让你一把抓起摇出另一套结果。假设你摇骰子的手段特别精妙&#xff0c;每次摇出的结果都满足以下两个条件&#xff1a; 1、每个骰子摇出…

Linux:kubernetes(k8s)prestop事件的使用(11)

他的作用是在结束pod容器之后进行的操作 apiVersion: v1 # api文档版本 kind: Pod # 资源对象类型 metadata: # pod相关的元数据&#xff0c;用于描述pod的数据name: nginx-po # pod名称labels: # pod的标签type: app #这个是随便写的 自定义的标签version: 1.0.0 #这个…

【LeetCode热题100】25. K 个一组翻转链表(链表)

一.题目要求 给你链表的头节点 head &#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回修改后的链表。 k 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍&#xff0c;那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节…

李彦宏“程序员将不再存在”言论被周鸿祎驳斥,网友怒怼:先把百度程序员都开除了

在 3 月 9 日央视的《对话》开年说节目上&#xff0c;百度创始人、董事长兼 CEO 李彦宏表示&#xff0c;基本上以后不会存在“程序员”这种职业了&#xff0c;因为只要会说话&#xff0c;人人都会具备程序员的能力。 “未来的编程语言只会剩下两种&#xff0c;一种叫做英文&am…

声明式事务还是编程式事务,如何选择?

(/≧▽≦)/~┴┴ 嗨~我叫小奥 ✨✨✨ &#x1f440;&#x1f440;&#x1f440; 个人博客&#xff1a;小奥的博客 &#x1f44d;&#x1f44d;&#x1f44d;&#xff1a;个人CSDN ⭐️⭐️⭐️&#xff1a;Github传送门 &#x1f379; 本人24应届生一枚&#xff0c;技术和水平有…

nut-ui组件库icon中使用阿里图标

1.需求 基本每个移动端组件库都有组件 icon组件 图标组件、 但是很多组件库中并找不到我们需要的图标 这时候 大家有可能会找图标库 最大众的就是iconfont的图标了 2.使用 有很多方式去使用这个东西 比如将再限链接中的css引入 在使用 直接下载图标 symbol 方式 等....…

uniapp 开发出现这个 Error in onLoad hook: “SyntaxError: Unexpected end of JSON input“

uniapp 开发出现这个 Error in onLoad hook: “SyntaxError: Unexpected end of JSON input“,这个问题如何解决。 原因&#xff1a; 由于JSON.parse无法识别某些url中的特殊字符比如&等特殊符号造成的。 解决办法&#xff1a; 页面A&#xff08;JSON.stringify传参&a…

‍❄️Unity 官方免费资源大放送!森林、沙漠、北极等 350+逼真的自然纹理 Megapack等你来拿

&#x1f333;350自然纹理 Megapack&#xff0c;免费获取&#xff01;&#x1f381; 你是否热爱游戏开发&#xff0c;却被昂贵的资源库所困扰&#xff1f;你是否渴望创造出令人惊叹的自然场景&#xff0c;却被有限的纹理素材所束缚&#xff1f;如果你的答案是肯定的&#xff0c…

Kotlin编程权威指南学习知识点预览

一、变量、常量和类型&#xff1a; 变量、常量以及 Kotlin 基本数据类型。变量和常量在 应用程序中可用来储值和传递数据。类型则用来描述常量或变量中保存的是什么样的数据。 1、声明变量: // 变量定义关键字 —— 变量名 —— 类型定义 —— 赋值运算符 —— 赋值var na…

MySQL中ON DUPLICATE KEY UPDATE的介绍与使用、批量更新、存在即更新不存在则插入

文章目录 一、ON DUPLICATE KEY UPDATE的介绍二、ON DUPLICATE KEY UPDATE的使用2.1、案例一&#xff1a;根据主键id进行更新2.2、案例二&#xff1a;根据唯一索引进行更新&#xff08;常用&#xff09;2.3、案例三&#xff1a;没有主键或唯一键字段值相同就插入2.4、案例四&am…

前端和后端权限控制【笔记】

前端权限设置【笔记】 前言版权推荐前端权限设置需求效果实现资源 后端权限控制1.给所有前端请求都携带token2.添加拦截器3.配置到WebMvcConfiguration4.更多的权限验证 最后 前言 2024-3-15 18:27:26 以下内容源自《【笔记】》 仅供学习交流使用 版权 禁止其他平台发布时删…