当前位置: 首页 > news >正文

Java常用工具算法-6--秘钥托管云服务3--微软zure Key Vault

Azure Key Vault是微软Azure提供的一项服务,旨在帮助用户安全地存储和管理敏感信息,如加密密钥、证书和密码等。它提供了一个集中的位置来保护这些重要资产,并且通过细粒度的访问控制和审计日志来确保安全性。

1、主要功能

(1)、密钥管理

  • 密钥类型:
    • 软件密钥(Standard 层):基于Azure软件加密,成本较低,适合一般应用场景。
    • HSM密钥(Premium 层):由FIPS 140-2 Level 3认证的硬件安全模块(HSM)保护,满足金融、医疗等高安全需求场景。
  • 密钥操作:
    • 支持生成、导入、轮换密钥(自动/手动)。
    • 提供密钥版本管理,旧版本密钥可保留以解密历史数据。
    • 支持加密算法包括AES、RSA、ECC等,但不支持国密算法(SM2/SM4)(与阿里云KMS不同)。

(2)、证书管理

  • SSL/TLS 证书:支持获取、管理和部署 SSL/TLS 证书。可以自动续订由受信任的证书颁发机构 (CA) 签发的证书。
  • 证书生命周期管理:包括证书的申请、续订、吊销等功能。

(3)、机密管理

  • 存储机密:能够安全地存储诸如数据库连接字符串、API 密钥和其他敏感信息。
  • 机密版本控制:支持多个版本的机密,便于回滚和审计。

(4)、访问控制

  • 身份验证:
    • 托管标识(推荐):Azure资源(如VM、函数)可自动获取身份,无需管理密钥或证书。
    • 服务主体:通过Azure AD服务主体访问,需手动轮换密钥。
  • 权限模型:
    • Azure RBAC:细粒度控制用户/应用对密钥、机密、证书的访问权限(如“密钥加密用户”、“机密读者”)。
    • Key Vault访问策略:基于角色的权限控制,支持用户、服务主体、托管标识等。

(5)、审计和监控

  • 日志记录和监控:提供详细的日志记录,用于跟踪对 Key Vault 资源的所有访问活动。
  • 诊断设置:可以配置诊断设置以将日志发送到 Log Analytics 工作区、Azure 存储帐户或 Event Hub。

(6)、高可用性和灾难恢复

  • 区域冗余:默认情况下,Key Vault 在区域内提供冗余,以防止局部故障。
  • 异地复制:可选配异地冗余选项,以实现跨地理区域的数据备份和恢复能力。

2、使用场景

  • 应用程序认证与授权:通过安全地存储和访问 API 密钥、OAuth tokens 等,提高应用的安全性。
  • 数据加密:利用Key Vault来管理和使用加密密钥,为数据加密提供基础支持。
  • 合规性要求:满足行业标准和法规对数据保护的要求,例如 PCI-DSS、HIPAA等。

3、说明示例:本地MySQL与Azure Key Vault集成

如:密钥加密数据流程。

(1)、生成数据密钥(DEK):

  • 调用Azure Key Vault的GenerateKey接口,获取密钥(如AES-256)。

(2)、加密数据:

  • 使用DEK加密本地MySQL数据,将密文DEK存储到Key Vault。

(3)、解密数据:

  • 通过Key Vault的Decrypt接口解密密文DEK,获取明文DEK后解密数据。

(4)、密钥轮换:

  • 启用自动轮换后,Key Vault生成新密钥版本,需重新加密DEK并更新存储。

4、Azure平台配置步骤

(1)、创建 Azure Key Vault

1. 登录 Azure 门户:

  • 访问 Azure 门户 并登录。

2. 创建资源组:

  • 在 Azure 门户中,选择 资源组 → 创建资源组,输入名称(如 myResourceGroup)和位置(如 China East)。

3. 创建 Key Vault:

  • 在 Azure 门户中,搜索并选择 密钥保管库 → 创建。
  • 填写以下信息:
    • 名称:唯一名称(如 mykeyvault2023)。
    • 订阅:选择你的 Azure 订阅。
    • 资源组:选择刚才创建的资源组。
    • 位置:与资源组一致(如 China East)。
  • 点击 查看 + 创建 → 创建。

4. 配置网络访问(可选):

  • 进入 Key Vault 资源 → 网络 → 防火墙和虚拟网络。
  • 选择 允许的访问来源 → 所选网络,添加允许访问的 IP 或虚拟网络。

5. 设置访问策略:

  • 进入 Key Vault 资源 → 访问策略 → 添加访问策略。
  • 选择 密钥权限(如 WrapKey、UnwrapKey)和 机密权限(如 Get、List)。
  • 选择主实体:选择你的 Azure AD 用户或服务主体(如 Azure Cloud Shell)。

(2)、存储机密到 Key Vault

1. 添加机密:

  • 进入 Key Vault 资源 → 机密 → 生成/导入。
  • 输入机密名称(如 my-secret)和值(如 my-value),点击 创建。

2. 获取 Key Vault URI:

  • Key Vault 的 URI 格式为 https://.vault.azure.net/。

5、代码示例

(1)、添加依赖

在pom.xml中添加以下依赖(Spring Cloud Azure):

<dependencyManagement><dependencies><dependency><groupId>com.azure.spring</groupId><artifactId>spring-cloud-azure-dependencies</artifactId><version>5.9.0</version> <!-- 查看最新版本 --><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement><dependencies><dependency><groupId>com.azure.spring</groupId><artifactId>spring-cloud-azure-starter</artifactId></dependency><dependency><groupId>com.azure.spring</groupId><artifactId>spring-cloud-azure-starter-keyvault-secrets</artifactId></dependency>
</dependencies>

(2)、配置 application.properties

在 src/main/resources/application.properties 中配置 Key Vault:
properties配置示例:

spring.cloud.azure.keyvault.secret.properties.enabled=true
spring.cloud.azure.keyvault.secret.uri=https://<your-keyvault-name>.vault.azure.net/

(3)、设置身份验证凭据

通过环境变量或 Azure 服务主体配置身份:

  • 使用服务主体:
    1. 在 Azure 门户中,创建一个 应用注册(App Registration)并获取:
    • 客户端 ID(Client ID)
    • 客户端密钥(Client Secret)
    • 租户 ID(Tenant ID)
      2. 在本地环境变量中设置:
      bash示例:
      export AZURE_TENANT_ID=“your-tenant-id”
      export AZURE_CLIENT_ID=“your-client-id”
      export AZURE_CLIENT_SECRET=“your-client-secret”

(4)、配置类

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;@Configuration
@ConfigurationProperties(prefix = "app")
public class AppConfig {private String secretFromKeyVault;// Getter 和 Setterpublic String getSecretFromKeyVault() {return secretFromKeyVault;}public void setSecretFromKeyVault(String secretFromKeyVault) {this.secretFromKeyVault = secretFromKeyVault;}
}

(5)、获取配置机密

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class KeyVaultController {@Autowiredprivate AppConfig appConfig;@GetMapping("/secret")public String getSecret() {return "Secret from Key Vault: " + appConfig.getSecretFromKeyVault();}
}

解释:
访问 http://localhost:8080/secret 应返回Key Vault中存储的机密值。

(6)、加密/解密的示例代码

import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.keys.KeyClient;
import com.azure.security.keyvault.keys.KeyClientBuilder;
import com.azure.security.keyvault.keys.cryptography.CryptographyClient;
import com.azure.security.keyvault.keys.cryptography.CryptographyClientBuilder;
import com.azure.security.keyvault.keys.models.KeyVaultKey;import java.util.Base64;public class AzureKeyVaultExample {public static void main(String[] args) {// 创建 KeyClientKeyClient keyClient = new KeyClientBuilder().vaultUrl("https://<your-key-vault-name>.vault.azure.net/").credential(new DefaultAzureCredentialBuilder().build()).buildClient();// 获取或创建密钥String keyName = "myEncryptionKey";KeyVaultKey key = keyClient.createRsaKey(keyName);// 创建 CryptographyClientCryptographyClient cryptoClient = new CryptographyClientBuilder().keyIdentifier(key.getId()).credential(new DefaultAzureCredentialBuilder().build()).buildClient();// 要加密的数据String sensitiveData = "Sensitive Data";byte[] plaintext = sensitiveData.getBytes();// 加密数据byte[] encryptedData = cryptoClient.encrypt("RSA-OAEP", plaintext).getCiphertext();System.out.println("Encrypted Data: " + Base64.getEncoder().encodeToString(encryptedData));// 解密数据byte[] decryptedData = cryptoClient.decrypt("RSA-OAEP", encryptedData).getPlaintext();System.out.println("Decrypted Data: " + new String(decryptedData));}
}

6、对比AWS和阿里云

Azure Key Vault、AWS KMS和阿里云KMS都是各自云平台提供的密钥管理服务,旨在帮助用户安全地创建、管理和使用加密密钥。下面从几个关键维度对这三种服务进行对比:

(1)、核心功能

  • Azure Key Vault:

    • 提供密钥、证书和机密的管理。
    • 支持硬件安全模块(HSM)保护的密钥。
    • 允许存储和管理SSL/TLS证书。
    • 提供详细的日志记录和监控。
  • AWS KMS:

    • 主要专注于密钥管理(包括生成、轮换、导入和使用)。
    • 支持通过HSM增强的安全性选项。
    • 提供了与多种AWS服务的深度集成,如S3、RDS等。
    • 支持客户主密钥(CMK)的概念,并允许自动密钥轮换。
  • 阿里云 KMS:

    • 类似于AWS KMS,专注于密钥管理。
    • 支持对称和非对称密钥的创建和管理。
    • 提供了与阿里云其他服务的紧密集成。
    • 支持密钥版本控制和自动密钥轮换。

(2)、安全性

所有这三个服务都提供了高级别的安全性,包括但不限于HSM支持。它们都设计用于满足各种合规性要求,比如ISO 27001, SOC 1/2/3, PCI-DSS 等。

(3)、集成能力

  • Azure Key Vault:与Azure生态系统中的服务紧密集成,例如Azure App Service、Virtual Machines等。
  • AWS KMS:与众多AWS服务高度集成,如EC2、S3、Lambda等,简化了数据加密过程。
  • 阿里云 KMS:与阿里云的服务如OSS、RDS等深度整合,为用户提供无缝的数据保护体验。

(4)、价格模型

每个服务的价格模型都有所不同,通常基于密钥的使用量、请求次数以及存储的数据量等因素计费。具体费用需参考各云服务商最新的定价策略。

(5)、易用性和灵活性

  • Azure Key Vault:因其不仅限于密钥管理,还包括证书和机密管理,可能更适合需要全面解决方案的企业。
  • AWS KMS:由于其强大的API支持和与其他AWS服务的深度集成,特别适合已经深入使用AWS生态系统的用户。
  • 阿里云 KMS:针对中国市场的优化,以及与阿里云其他服务的良好集成,使得它成为阿里云用户的理想选择。

(6)、地域覆盖

  • Azure Key Vault:作为微软Azure的一部分,覆盖全球多个区域。
  • AWS KMS:作为AWS的一部分,提供广泛的地理覆盖范围。
  • 阿里云 KMS:主要集中在亚洲地区,尤其是中国市场,但也在扩展至其他国家和地区。

(7)、选择建议

  1. 需要国密算法(SM2/SM4):阿里云KMS。
  2. 微软生态深度集成:Azure Key Vault。
  3. AWS全栈部署:AWS KMS。
  4. 成本敏感的中国本地业务:阿里云KMS。
  5. 跨国企业需FIPS认证:Azure或AWS的HSM层。

逆风翻盘,Dare To Be!!!

相关文章:

Java常用工具算法-6--秘钥托管云服务3--微软zure Key Vault

Azure Key Vault是微软Azure提供的一项服务&#xff0c;旨在帮助用户安全地存储和管理敏感信息&#xff0c;如加密密钥、证书和密码等。它提供了一个集中的位置来保护这些重要资产&#xff0c;并且通过细粒度的访问控制和审计日志来确保安全性。 1、主要功能 &#xff08;1&a…...

表格开启聚光灯,查看数据不错行-Excel易用宝

面对如此庞大的一个表格&#xff0c;每次找数据就像走迷宫一样&#xff0c;有时看到了数据&#xff0c;眼神不好的小丽小手一抖还会选择到其他数据上&#xff0c;我问她个数据&#xff0c;她经常给我报个错的数据&#xff0c;我说怎么数据总是对不上号。 对于大表格防看错行这…...

解决java使用easyexcel填充模版后,高度不一致问题

自定义工具&#xff0c;可以通过获取上一行行高设置后面所以行的高度 package org.springblade.modules.api.utils;import com.alibaba.excel.write.handler.RowWriteHandler; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; import com.alibaba.excel.wr…...

【25软考网工笔记】第二章 数据通信基础(1)信道特性 奈奎斯特 香农定理

一、信道特性 1. 数据通信概念 1&#xff09;通信系统的基本元素 通信目的: 传递信息。 信源: 产生和发送信息的一端&#xff0c;即信息发送的源头。 信宿: 接收信息的一端&#xff0c;即信息的目的地。 信道: 信源和信宿之间的通信线路&#xff0c;用于传输信息。 信号变换:…...

2024年React最新高频面试题及核心考点解析,涵盖基础、进阶和新特性,助你高效备战

以下是2024年React最新高频面试题及核心考点解析&#xff0c;涵盖基础、进阶和新特性&#xff0c;助你高效备战&#xff1a; 一、基础篇 React虚拟DOM原理及Diff算法优化策略 • 必考点&#xff1a;虚拟DOM树对比&#xff08;同级比较、Key的作用、组件类型判断&#xff09; …...

【Code】《代码整洁之道》笔记-Chapter11-系统

第11章 系统 “复杂要人命。它消磨开发者的生命&#xff0c;让产品难以规划、构建和测试。” 11.1 如何建造一个城市 你能自己掌管一切细节吗&#xff1f;大概不行。即便是管理一个既存的城市&#xff0c;也是靠单人能力无法做到的。不过&#xff0c;城市还是在运转&#…...

MySQL数据库编程总结

MySQL数据库编程总结 一、数据库概述 数据库定义 • 数据库是管理数据的软件系统&#xff0c;用于高效存储、管理和检索数据&#xff0c;减少冗余。 • 核心功能&#xff1a;通过SQL语言定义、操作数据&#xff0c;维护完整性和安全性。 常见数据库 • MySQL、Oracle、SQL Ser…...

MySQL学习笔记7【InnoDB】

Innodb 1. 架构 1.1 内存部分 buffer pool 缓冲池是主存中的第一个区域&#xff0c;里面可以缓存磁盘上经常操作的真实数据&#xff0c;在执行增删查改操作时&#xff0c;先操作缓冲池中的数据&#xff0c;然后以一定频率刷新到磁盘&#xff0c;这样操作明显提升了速度。 …...

HTML应用指南:利用GET请求获取全国汉堡王门店位置信息

在当今快节奏的都市生活中&#xff0c;餐饮品牌的门店布局不仅反映了其市场策略&#xff0c;更折射出消费者对便捷、品质和品牌认同的追求。汉堡王&#xff08;Burger King&#xff09;作为全球知名的西式快餐品牌之一&#xff0c;在中国市场同样占据重要地位。自进入中国市场以…...

STM32+EC600E 4G模块 与华为云平台通信

前言 由于在STM32巡回研讨会上淘了一块EC600E4G模块以及刚办完电信卡多了两张副卡&#xff0c;副卡有流量刚好可以用一下&#xff0c;试想着以后画一块ESP32板子搭配这个4G模块做个随身WIFI&#xff0c;目前先用这个模块搭配STM32玩一下云平顺便记录一下。 实验目的 实现STM…...

【Spring】IoC详解:五大类注解、类Bean的存储(上)

1.IoC本质 IoC&#xff08;Inversion of Control&#xff0c;控制反转&#xff09; 是Spring框架的灵魂&#xff0c;它颠覆了传统编程中“谁用谁造”的逻辑。简单来说&#xff0c;IoC就是把对象创建和管理的控制权从程序员手中“反转”给一个外部容器&#xff0c;让代码更灵活…...

图片压缩后失真?3款工具还原高清细节

在当今&#xff0c;图片的使用无处不在。为了便于存储和传输&#xff0c;我们常常会对图片进行压缩。然而&#xff0c;不少人发现&#xff0c;压缩后的图片往往变得模糊&#xff0c;失去了原本的清晰度和细节。那么&#xff0c;当遇到这种情况时&#xff0c;我们该如何将模糊的…...

2025中国移动云智算大会|彩讯企业级AI应用产品引关注

2025中国移动以“由云向智&#xff0c;共绘算网新生态”为主题&#xff0c;精心打造了一场智能科技展。中国移动携手生态伙伴带来涵盖算力、工具、模型、应用等覆盖多样化场景的AI应用服务&#xff0c;赋能生产方式、生活方式、社会治理方式的数智化解决方案&#xff0c;充分释…...

在新一代人工智能技术引领下的,相互联系、层层递进的明厨亮灶开源了

明厨亮灶视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。AI技术可以24小时…...

修图自由!自建IOPaint服务器,手机平板随时随地远程调用在线P图

前言&#xff1a;在这个人人都想当摄影师的时代&#xff0c;一张完美的照片简直比中彩票还难。但别担心&#xff0c;今天我来给大家揭秘一个超级神器——IOPaint&#xff01;这款免费开源的AI工具不仅能一键移除照片中的杂物和路人&#xff0c;还能智能扩展图片内容&#xff0c…...

PyTorch实现二维卷积与边缘检测:从原理到实战

本文通过PyTorch实现二维互相关运算、自定义卷积层&#xff0c;并演示如何通过卷积核检测图像边缘。同时&#xff0c;我们将训练一个卷积核参数&#xff0c;使其能够从数据中学习边缘特征。 1. 二维互相关运算的实现 互相关运算&#xff08;Cross-Correlation&#xff09;是卷…...

解决Server doesn‘t support Accept-Ranges问题

Cannot download differentially, fallback to full download: Error: Server doesnt support Accept-Ranges (response code 200) 解决方案 修改nginx配置文件支持Accept-Ranges&#xff08;范围请求&#xff09; server {...location ^~/ {default_type multipart/byterang…...

处理Excel表不等长时间序列用tsfresh提取时序特征

我原本的时间序列格式是excel表记录的&#xff0c;每一行是一条时间序列&#xff0c;时间序列不等长。 要把excel表数据读取出来之后转换成extract_features需要的格式。 1.读取excel表数据 import pandas as pd import numpy as np from tsfresh import extract_features mda…...

Linux __命令和权限

目录 一、几个指令 bc uname -r 指令 重要的几个热键 二、Shell命令以及运行原理 为什么有外壳 外壳是如何工作的 什么是操作系统&#xff0c;为什么要有操作系统 三、文件类型 1、Linux的文件类型 2、文件类型 四、用户 用户问题和切换问题 增加普通用户 root -&…...

IO流——字符输入输出流:FileReader FileWriter

一、文件字符输入流&#xff1a;FileReader 作用&#xff1a;以内存为基准&#xff0c;可以把文件中的数据以字符的形式读入到内存中去 public class Test5 {public static void main(String[] args) {try (Reader fr new FileReader("E:\\IDEA\\JavaCodeAll\\file-io-t…...

【大模型理论篇】DeepResearcher论文分析-通过在真实环境中的强化学习实现深度研究

1. 背景与问题 大模型&#xff08;LLMs&#xff09;配合网络搜索功能已经展现出在深度研究任务中的巨大潜力。然而&#xff0c;目前的方法主要依赖两种途径&#xff1a; 人工设计的提示工程&#xff08;Prompt Engineering&#xff09;&#xff1a;这种方法依靠手动设计的工作流…...

大数据(7.5)Kafka Edge在5G边缘计算中的革新实践:解锁毫秒级实时处理的无限可能

目录 一、5G时代边缘计算的算力革命1.1 传统架构的延迟困境1.2 5G网络特性与Kafka适配 二、Kafka Edge核心架构设计2.1 分层处理架构2.2 关键技术创新点2.2.1 协议优化2.2.2 轻量化存储引擎 三、5G场景落地实践3.1 智能工厂预测性维护3.2 全息远程医疗会诊 四、性能优化深度实践…...

【基于开源insightface的人脸检测,人脸识别初步测试】

简介 InsightFace是一个基于深度学习的开源人脸识别项目,由蚂蚁金服的深度学习团队开发。该项目提供了人脸检测、人脸特征提取、人脸识别等功能,支持多种操作系统和深度学习框架。本文将详细介绍如何在Ubuntu系统上安装和实战InsightFace项目。 目前github有非常多的人脸识…...

kafka怎么保证消息不被重复消费

在 Kafka 中&#xff0c;要保证消息不被重复消费&#xff0c;可从消费者端和生产者端分别采取不同策略&#xff0c;下面为你详细介绍&#xff1a; 消费者端实现幂等消费 幂等消费是指对同一条消息&#xff0c;无论消费多少次&#xff0c;产生的业务结果都是一样的。 业务层面…...

一个批量文件Dos2Unix程序(Microsoft Store,开源)

这个程序可以把整个目录的文本文件改成UNIX格式&#xff0c;源码是用C#写的。 目录 一、从Microsoft Store安装 二、从github获取源码 三、功能介绍 3.1 运行 3.2 浏览 3.3 转换 3.4 转换&#xff08;无列表&#xff09; 3.5 取消 3.6 帮助 四、源码解读 五、讨论和…...

Python及Javascript的map 、 filter 、reduce类似函数的对比汇总

A. 在Python中&#xff0c;map 和 filter 是两个非常有用的内置函数&#xff0c;它们分别用于对可迭代对象中的每个元素执行某种操作&#xff0c;并返回结果。在JavaScript中&#xff0c;虽然没有内置的 map 和 filter 函数&#xff0c;但是可以使用数组的 map() 和 filter() …...

Linux中OS的管理和进程的概念

一、OS的管理 1.1操作系统宏观的理解 OS的本质是一款进行资源管理的软件 图示&#xff1a; 1.2OS存在的意义 1.2.1计算机的分层式管理结构 最底层的硬件部分遵循“冯诺依曼体系” &#xff0c;每一种硬件都在驱动层中有着自己对应的“驱动程序” 在OS中&#xff0c;驱动管…...

Spring定时任务修仙指南:从@Scheduled到分布式调度的终极奥义

各位被Thread.sleep()和while(true)折磨的Spring道友们&#xff01;今天要解锁的是Spring生态自带的定时任务三件套——Scheduled、TaskScheduler、Async定时组合技&#xff01;无需引入外部依赖&#xff0c;轻松实现从简单定时到分布式调度的全场景覆盖&#xff01;准备好抛弃…...

Node.js多版本共存管理工具NVM(最新版本)详细使用教程(附安装包教程)

目录 前言 一、Nvm下载 二、Nvm安装 三、配置nodeJS 前言 NVM&#xff08;Node Version Manager&#xff09;是一个用于管理多个Node.js版本的工具&#xff0c;主要帮助开发者在同一设备上轻松安装、切换和卸载不同版本的Node.js&#xff0c;解决项目间版本冲突问题。 一、…...

管道魔法木马利用Windows零日漏洞部署勒索软件

微软披露&#xff0c;一个现已修复的影响Windows通用日志文件系统&#xff08;CLFS&#xff09;的安全漏洞曾被作为零日漏洞用于针对少数目标的勒索软件攻击中。 01 攻击目标与漏洞详情 这家科技巨头表示&#xff1a;"受害者包括美国信息技术&#xff08;IT&#xff09…...

Devops之Argo:Argo 是什么,和现在常用的Jenkins之间的区别

Argo CD&#xff08;Argo Continuous Delivery 的缩写&#xff09;是一款基于 GitOps 的声明式 Kubernetes 持续交付工具。它提供了一种以 Git 为中心的方法来管理和部署应用程序到 Kubernetes 集群。Argo CD 遵循 GitOps 的原则&#xff0c;即将应用程序的预期状态存储在 Git …...

从 60 FPS 掉帧到 7.6 倍提速Rust + WebAssembly 优化《生命游戏》的实战指南

一、构建 FPS 统计器&#xff1a;用 performance.now() 实时观察性能变化 要优化&#xff0c;就要先 测量。我们在 JavaScript 端添加一个 fps 对象&#xff0c;结合 performance.now() 来监控每一帧的耗时&#xff0c;并统计最近 100 帧的平均 FPS、最小 FPS、最大 FPS&#…...

jmeter 集成ZAP进行接口测试中的安全扫描 实现方案

以下是将 JMeter 集成 ZAP(OWASP Zed Attack Proxy)进行接口测试中安全扫描的实现方案: 1. 环境准备 JMeter 安装:从 JMeter 官方网站(https://jmeter.apache.org/download_jmeter.cgi)下载并安装 JMeter,确保其版本稳定。ZAP 安装:从 ZAP 官方网站(https://www.zapr…...

Hyperlane 文件分块上传服务端

Hyperlane 文件分块上传服务端&#xff1a;高效、可靠、易用的文件上传解决方案 引言 在现代 Web 开发中&#xff0c;文件上传是许多应用的核心功能之一。然而&#xff0c;随着文件大小的增加和网络环境的复杂性&#xff0c;传统的单次文件上传方式已经难以满足需求。Hyperla…...

BT面板docker搭建excalidraw遇到的问题

1.傻瓜式拉取镜像 2.点击创建容器 3.暴露端口 4.放行端口和服务器安全组&#xff0c;如果用的是轻量型服务器&#xff0c;那就关闭防火墙 下面放图...

Qt之OpenGL使用Qt封装好的着色器和编译器

代码 #include "sunopengl.h"sunOpengl::sunOpengl(QWidget *parent) {}unsigned int VBO,VAO; float vertices[]{0.5f,0.5f,0.0f,0.5f,-0.5f,0.0f,-0.5f,-0.5f,0.0f,-0.5f,0.5f,0.0f };unsigned int indices[]{0,1,3,1,2,3, }; unsigned int EBO; sunOpengl::~sunO…...

【仿Mudou库one thread per loop式并发服务器实现】项目介绍+前置技术知识点

HTTP协议模块实现 1. 项目实现的目标2. 项目储备知识2.1 HTTP服务器2.2 Reactor模型 3. 功能模块划分3.1 SERVER模块3.1.1 Buffer模块3.1.2 Socket模块3.1.3 Channel模块3.1.4 Poller模块3.1.5 EventLoop模块3.1.6 Connection模块3.1.7 7. Acceptor模块3.1.8 TimerQueue模块3.1…...

Open Interpreter:重新定义人机交互的开源革命

引言 在人工智能技术蓬勃发展的今天&#xff0c;人机交互的方式正经历着前所未有的变革。Open Interpreter&#xff0c;作为一个开源项目&#xff0c;正在重新定义我们与计算机的互动方式。它允许大型语言模型&#xff08;LLMs&#xff09;在本地运行代码&#xff0c;通过自然…...

Shell编程之条件语句

目录 一.条件测试操作 1.文件测试 2.整数值比较 3.字符串比较 4.逻辑测试 二&#xff1a;if条件语句 1.if语句的结构 &#xff08;1&#xff09;单分支if语句 &#xff08;2&#xff09;双分支if语句 &#xff08;3&#xff09;多分支if语句 2.if语句应用示例 &…...

Python编程快速上手 让繁琐工作自动化笔记

编程基础 字符串使用单引号...

高性能文件上传服务

高性能文件上传服务 —— 您业务升级的不二选择 在当今互联网数据量激增、文件体积日益庞大的背景下&#xff0c;高效、稳定的文件上传方案显得尤为重要。我们的文件分块上传服务端采用业界领先的 Rust HTTP 框架 Hyperlane 开发&#xff0c;凭借其轻量级、低延时和高并发的特…...

【从零开始学习JVM | 第二篇】HotSpot虚拟机对象探秘

对象的创建 1.类加载检查 虚拟机遇到一条new的指令&#xff0c;首先去检查这个指令的参数能否在常量池中定位到这个类的符号引用&#xff0c;并且检查这个符号引用代表的类是否已被加载过、解析和初始化过。如果没有&#xff0c;那必须先执行类的加载过程。 2.分配内存 在类…...

浅谈前端开发中的 npm、cnpm、pnpm、yarn各自特点

在前端开发中的 npm、cnpm、pnpm、yarn 等工具都是包管理器&#xff08;Package Manager&#xff09;&#xff0c;用于安装/更新/卸载 JavaScript 项目的依赖。 下面我详细地给你梳理下这些包管理器的作用、特点和适用场景&#x1f447; 一. npm&#xff08;Node Package Mana…...

【数据结构】包装类和泛型

目录 1.包装类 1.1 基本数据类型和对应的包装类 1.2 装箱和拆箱 1.3 自动装箱和自动拆箱 2.泛型 2.1泛型的概念 2.2引出泛型 3.语法 4.泛型类的使用 5.泛型的上界 1.包装类 在Java中&#xff0c;由于基本类型不是继承自Object&#xff0c;为了在泛型代码中可以支持基…...

红帽9运行容器一

运行容器&#xff1a;容器概念&#xff0c;构建&#xff0c;存储和运行容器的核心技术&#xff08;用户资源管理的控制组&#xff0c;进程隔离的命名空间&#xff0c;加强安全边界的SELinux和Seccomp&#xff09; 软件运行需要环境&#xff0c;系统库&#xff0c;配置文件和服…...

使用poi+itextpdf把word转成pdf

使用 Apache POI 和 iTextPDF 将 Word 转换为 PDF 需要分两步操作&#xff1a;先用 POI 读取 Word 内容&#xff0c;再用 iText 生成 PDF。 apache poi官方文档:Apache POI™ - Javadocs 以下是详细的代码实现示例&#xff1a; 环境准备 在 pom.xml 中添加依赖&#xff1a; …...

民安智库:开启零售行业客户满意度提升新征程​

在当今这个瞬息万变的商业世界中&#xff0c;零售市场的竞争愈发激烈&#xff0c;犹如一场没有硝烟的战争。各大零售企业为了抢占市场份额&#xff0c;纷纷使出浑身解数&#xff0c;从商品种类的丰富到店铺环境的优化&#xff0c;从价格策略的调整到服务质量的提升&#xff0c;…...

自行搭建一个Git仓库托管平台

1.安装Git sudo apt install git 2.Git本地仓库创建&#xff08;自己选择一个文件夹&#xff09; git init 这里我在 /home/test 下面初始化了代码仓库 1. 首先在仓库中新建一个txt文件&#xff0c;并输入一些内容 2. 将文件添加到仓库 git add test.txt 执行之后没有任何输…...

无锡无人机超视距驾驶证怎么考?

无锡无人机超视距驾驶证怎么考&#xff1f;在近年来&#xff0c;无人机技术的迅猛发展使得无人机的应用场景变得愈发广泛&#xff0c;其不仅在环境监测、农业喷洒、快递配送等领域展现出真金白银的价值&#xff0c;同时也推动了无人机驾驶证的需求。尤其是在无锡&#xff0c;随…...

pyautogui是什么:自动化鼠标和键盘操作

pyautogui是什么:自动化鼠标和键盘操作 目录 pyautogui是什么:自动化鼠标和键盘操作安装方法主要功能及使用示例1. 鼠标操作2. 键盘操作3. 获取屏幕信息应用场景注意事项pyautogui 是一个用于自动化鼠标和键盘操作的 Python 第三方库,它允许开发者通过编写 Python 代码来模拟…...