Maplibre-gl\Mapbox-gl改造支持对矢量瓦片加密

devtools/2024/10/22 12:18:56/

Maplibre-gl是Mapbox-gl剔除自带地图服务之后的一个分支,代码很相似。Maplibre-gl\Mapbox-gl使用的pbf格式的矢量瓦片,数据量小,渲染效果好。但也存在着信息泄露的风险。但如果想使用这个开发框架的前端渲染效果,还必须要使用这个格式。最近研究了一下如何对矢量瓦片进行加密与解密,这篇文章以Maplibre-gl和SM2加密算法为例,展示通过springboot后端和SM2加密算法对pbf格式瓦片进行加密,修改Maplibre-gl源码对矢量瓦片进行解密,达到传输过程中,瓦片加密的效果。

目录

    • 1 加密的必要性
    • 2 Maplibre-gl本地开发环境搭建
    • 3 Springboot 后端加密pbf矢量瓦片
      • 3.1 添加依赖
      • 3.2 生成公私钥
      • 3.3 加密pbf
    • 4 Maplibre-gl加密改造
      • 4.1 添加依赖
      • 4.2 封装解密函数
      • 4.3 插入解密逻辑
    • 5 效果测试

1 加密的必要性

对于前端来说,真的没有很好的保密性,F12一按,所有的网络请求都可以看到。而且pbf格式的矢量瓦片请求是按照TMS标准来执行的,XYZ都是明文,很容易被爬虫。在前面的博文中,也测试过pbf格式的瓦片,也是可以被解析和逆向还原的。

  • Mapbox矢量瓦片pbf文件信息解析

对于安装性要求比较高的GIS开发来说,坐标数据被爬取和逆向是一个很大的损失,也会带来很多安全问题,pbf瓦片的加密是很有必要的。

2 Mapli


http://www.ppmy.cn/devtools/127832.html

相关文章

【国产化信创平台】Linux系统设置程序 开机自启

目录 一、创建编辑自启服务文件 步骤1:创建服务文件 步骤2:编辑服务文件 步骤3:重新加载systemd并启用服务 二、自启动展示​编辑 一、创建编辑自启服务文件 要在Linux系统中配置一个开机启动服务,你需要创建一个 systemd 服…

vue3如何运用组合式写法,封装表格列表请求数据的逻辑

1.代码如下: import { getPageList } from "/api/cloudExhibitionHall" import { ref, watch } from "vue"// 特殊参数传参 const role JSON.parse(localStorage.getItem(current-role) || {}) const tenantId role.tenantId ? role.tenant…

Java Spring的常用注解详解和案例示范

1. Spring 常用注解概述 1.1 Component Component 是 Spring 的基础注解之一,它用于将类标记为 Spring 容器中的一个组件。通过 Component 注解,Spring 会自动将该类注册为一个 Bean,供依赖注入使用。 使用示例: Component pu…

Vue 路由

前端路由&#xff1a; URL 中的 hash(#号) 与组件之间的对应关系。 1. Vue 路由 1.1 Vue Router 介绍: Vue Router 是 Vue 的官方路由。 组成: VueRouter: 路由器类&#xff0c;根据路由请求在路由视图中动态渲染选中的组件。 <router-link>&#xff1a;请求链接组件…

全面了解 NGINX 的负载均衡算法

NGINX 提供多种负载均衡方法&#xff0c;以应对不同的流量分发需求。常用的算法包括&#xff1a;最少连接、最短时间、通用哈希、随机算法和 IP 哈希。这些负载均衡算法都通过独立指令来定义&#xff0c;每种算法都有其独特的应用场景。 以下负载均衡方法&#xff08;IP 哈希除…

Unity3D功耗和发热分析与优化详解

前言 Unity3D作为广泛使用的游戏开发引擎&#xff0c;在游戏开发过程中&#xff0c;功耗和发热问题一直是开发者需要重点关注的问题。功耗和发热不仅影响用户体验&#xff0c;还可能对设备的硬件寿命造成一定影响。本文将从技术角度详细分析Unity3D游戏在移动设备上的功耗和发…

关于小程序审核需要提交订单列表页面path的修改办法

小程序又又又又又搞事情啦&#xff5e;&#xff5e;&#xff5e; 从12月31号起&#xff0c;所有有订单生成逻辑的小程序在审核过程中&#xff0c;必须要填写订单列表页面的path才可以进行审核 在代码层面上会有一些小的改动&#xff0c;下面就告诉大家怎么去修改吧。 第一步…

windows安装mysql,跳过自定义的密码验证

1、mysql版本8 2、配置系统环境变量 3、新建my.ini文件在mysql目录下&#xff0c;需要指定data目录 [mysqld] # 设置3306端口 port3306# 自定义设置mysql的安装目录&#xff0c;即解压mysql压缩包的目录 basedirD:\hjl\app\mysql\mysql-8.0.33-winx64# 自定义设置mysql数据…