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

CEF 数据加密与网络安全

随着网络攻击的日益猖獗,确保应用的安全性已经成为开发者的首要任务。特别是在现代Web应用中,如何确保数据的加密存储、网络通信的安全性以及有效的认证机制成为至关重要的问题。对于基于 Chromium Embedded Framework (CEF) 的应用,开发者必须采取适当的措施,确保其应用在使用过程中不会遭受中间人攻击、数据泄漏等威胁。

本章节将深入探讨如何在 CEF 中实现强制启用 HTTPS、加密存储与传输数据以及集成 OAuth2 实现认证机制,为开发者提供详细、实用的技术方案。


1. HTTPS 强制启用

HTTPS(HyperText Transfer Protocol Secure)通过 SSL/TLS 加密传输,确保客户端与服务器之间的数据交换不被窃取或篡改。在应用中强制启用 HTTPS 能有效防止中间人攻击(MITM),提升数据的机密性和完整性。

1.1 强制 HTTPS 请求

为了确保所有 Web 请求都通过 HTTPS 进行,开发者需要在 CEF 中强制将所有 HTTP 请求重定向到 HTTPS。为了实现这一目标,首先需要配置浏览器窗口和 HTTP 请求处理机制。

步骤 1:在 CEF 中启用 HTTPS 强制模式

CEF 本身并不直接提供启用 HTTPS 强制模式的配置项,但开发者可以通过拦截 HTTP 请求并将其转换为 HTTPS 来实现这一目的。具体做法是,重写浏览器的请求拦截器来捕获所有 HTTP 请求,并重定向到 HTTPS。

class MyRequestHandler : public CefRequestHandler {
public:CefRefPtr<CefResourceHandler> GetResourceHandler(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, const CefString& url) override {// 如果 URL 以 http:// 开头,强制重定向到 https://std::string strUrl = url.ToString();if (strUrl.find("http://") == 0) {std::string httpsUrl = "https://" + strUrl.substr(7);  // 删除 "http://"frame->LoadURL(httpsUrl);return nullptr;}return nullptr; // 允许其他请求继续}IMPLEMENT_REFCOUNTING(MyRequestHandler);
};

通过以上代码,当 CEF 加载 URL 时,若请求的是 HTTP 页面,则会自动重定向到 HTTPS 页面,从而避免中间人攻击和数据泄露的风险。

步骤 2:确保服务器支持 HTTPS

确保服务器支持 HTTPS,并为其配置有效的 SSL/TLS 证书。可以通过使用像 Let's Encrypt 等免费证书颁发机构生成 SSL 证书。配置完证书后,所有来自浏览器的请求将通过加密的 HTTPS 通道进行。


2. 加密存储与传输

在现代应用中,保护敏感数据(如用户信息、密码等)免受泄漏和攻击至关重要。加密存储和传输的数据可以有效防止数据泄漏,并确保用户隐私得到保护。

2.1 本地存储加密

CEF 本身支持与本地存储交互,如使用文件系统或数据库存储数据。为了确保数据安全,开发者可以对本地存储的数据进行加密。常见的加密算法包括 AES(对称加密)和 RSA(非对称加密)。

步骤 1:选择加密算法

为了保障本地存储的数据安全,可以选择 AES 对称加密来加密文件或数据库中的数据。AES 加密速度较快且安全性高,适合用于大规模的数据加密。

#include <openssl/aes.h>
#include <openssl/rand.h>void EncryptData(const std::string& input, std::string& output, const std::string& key) {AES_KEY encryptKey;AES_set_encrypt_key((unsigned char*)key.c_str(), 128, &encryptKey);  // 设置 AES 密钥// 数据填充(根据实际情况填充)unsigned char iv[AES_BLOCK_SIZE] = {0};unsigned char ciphertext[input.size()];AES_cbc_encrypt((const unsigned char*)input.c_str(), ciphertext, input.size(), &encryptKey, iv, AES_ENCRYPT);output.assign((char*)ciphertext, input.size());
}
步骤 2:实现加密存储

当应用需要保存敏感数据(如用户设置、密码等)时,可以对其进行加密处理后再存储到本地。例如,可以加密后将数据存储到文件中,保证本地存储的安全。

void SaveEncryptedData(const std::string& data, const std::string& filepath, const std::string& key) {std::string encryptedData;EncryptData(data, encryptedData, key);std::ofstream outFile(filepath, std::ios::binary);outFile.write(encryptedData.c_str(), encryptedData.size());
}

通过这种方式,存储在本地的数据被加密,只有通过正确的密钥才能解密,从而有效防止数据泄漏。

2.2 数据传输加密

除了本地存储加密外,数据在传输过程中也需要加密,以防止敏感信息被网络上的攻击者窃取。实现数据传输加密的主要方法是使用 HTTPS(SSL/TLS 协议)来确保传输通道的安全性。

步骤 1:配置 HTTPS 服务器

与启用 HTTPS 强制模式类似,服务器端也需要使用有效的 SSL/TLS 证书来加密数据传输。可以通过配置 Web 服务器(如 Apache、Nginx 等)来启用 HTTPS 并加密传输的数据。

# 在 Nginx 配置文件中启用 SSL/TLS
server {listen 443 ssl;ssl_certificate /path/to/certificate.crt;ssl_certificate_key /path/to/private.key;# 其他 HTTPS 配置
}
步骤 2:使用加密库进行加密

除了使用 HTTPS 进行传输加密,还可以使用加密库(如 OpenSSL)手动对敏感数据进行加密。以下是使用 OpenSSL 对传输数据进行加密的简单示例:

#include <openssl/ssl.h>
#include <openssl/err.h>SSL_CTX* InitSSLContext() {SSL_library_init();SSL_CTX* ctx = SSL_CTX_new(TLS_client_method());return ctx;
}void SendEncryptedData(SSL_CTX* ctx, const std::string& data) {SSL* ssl = SSL_new(ctx);// 创建 SSL 连接// 执行数据发送操作SSL_write(ssl, data.c_str(), data.size());// 清理SSL_free(ssl);
}

通过上述方法,可以确保所有网络传输的数据都经过加密处理,防止数据在传输过程中被窃取或篡改。


3. OAuth2 与认证机制

OAuth2 是一种开放标准授权协议,允许第三方应用在不暴露用户密码的情况下访问用户的某些受保护资源。对于需要集成认证与授权的 CEF 应用,OAuth2 提供了安全的身份认证机制。

3.1 集成 OAuth2 认证

OAuth2 认证流程主要包括授权码授权、客户端凭证授权、密码授权和隐式授权。对于大多数 Web 应用来说,授权码授权流程最为常见。

步骤 1:配置 OAuth2 客户端

首先,需要为 CEF 应用配置 OAuth2 客户端。常见的 OAuth2 提供者包括 Google、Facebook、GitHub 等,开发者需要在相应的开发者平台创建应用并获得 client_id 和 client_secret。

#include <curl/curl.h>void AuthenticateWithOAuth2(const std::string& clientId, const std::string& clientSecret) {CURL* curl = curl_easy_init();// 设置 OAuth2 授权码请求的 URLstd::string url = "https://oauth2provider.com/authorize?client_id=" + clientId;// 执行授权请求curl_easy_setopt(curl, CURLOPT_URL, url.c_str());curl_easy_perform(curl);// 获取访问令牌// 根据 OAuth2 提供者的文档获取访问令牌并存储
}
步骤 2:获取和使用访问令牌

一旦用户授权并返回授权码,开发者可以用授权码交换访问令牌,并使用该令牌访问受保护资源。

void ExchangeAuthorizationCodeForToken(const std::string& authorizationCode, const std::string& clientId, const std::string& clientSecret) {CURL* curl = curl_easy_init();// 用授权码请求访问令牌std::string url = "https://oauth2provider.com/token";curl_easy_setopt(curl, CURLOPT_URL, url.c_str());// 设置请求头和请求体(包括授权码、client_id、client_secret等)// 发送请求并处理返回的访问令牌
}

通过这种方式,应用可以通过 OAuth2 协议安全地进行用户身份验证和授权。


总结

数据加密与网络安全在现代应用开发中扮演着极其重要的角色,尤其是涉及到敏感数据时。通过强制启用 HTTPS,开发者可以确保所有 Web 请求通过加密传输,防止中间人攻击。加密存储与传输的结合,确保了数据在本地存储和网络传输中的安全。而 OAuth2 协议为应用提供了一个安全的认证与授权机制,允许用户在不暴露密码的情况下授权第三方访问受保护的资源。

通过结合这些技术方案,开发者可以构建安全、可靠的 CEF 应用,有效防止潜在的安全威胁,并保护用户的隐私。

关于作者:

15年物联网开发、带过10-20人的团队,多次帮助公司从0到1完成项目开发,在TX等大厂都工作过。当下为退役状态,写此篇文章属个人爱好。本人10多年开发经验期间手机了很多开发课程等资料,需要可联系我

相关文章:

CEF 数据加密与网络安全

随着网络攻击的日益猖獗&#xff0c;确保应用的安全性已经成为开发者的首要任务。特别是在现代Web应用中&#xff0c;如何确保数据的加密存储、网络通信的安全性以及有效的认证机制成为至关重要的问题。对于基于 Chromium Embedded Framework (CEF) 的应用&#xff0c;开发者必…...

【Linux学习】十五、Linux/CentOS 7 用户和组管理

Linux下组和用户的管理都必须是root用户下进行&#xff1a; 一、组的管理 1.组的创建 格式&#xff1a; groupadd 组名参数&#xff1a; -g&#xff1a;指定用户组的组ID&#xff08;GID&#xff09;&#xff0c;如果不提供则由系统自动分配。 【案例】创建一个名为 oldg…...

C语言实现图片文件的复制

在C语言中&#xff0c;直接处理图片文件&#xff08;如JPEG、PNG等&#xff09;的复制&#xff0c;通常涉及到文件I/O操作。这些图片文件是二进制文件&#xff0c;因此需要使用二进制模式读取和写入文件。 图片文件复制代码&#xff1a; #include <stdio.h> #include&l…...

噪杂环境(房车改装市场)离线语音通断器模块

一直在坚持&#xff0c;却很难有机会上热门&#xff0c;在现在这个以流量为导向的时代&#xff0c;貌似很难靠所谓的坚守和热爱把产品成功的推向市场了。目前的客户仍然是以老客户为主&#xff0c;应用场景主要是房车改装&#xff0c;根据九客户的需求定制化一些模块。因为没有…...

网络安全知识点

第一章 网络安全概述 1.2.1 网络安全概念P4 网络安全是指网络系统的硬件、软件及其系统中的数据受到保护&#xff0c;不因偶然的或恶意的原因而遭到破坏、更改、泄露&#xff0c;系统连续可靠正常地运行&#xff0c;网络服务不中断。 1.2.3 网络安全的种类P5 &#xff08;1…...

QT<32>软件子页面最小化后再次点击置顶显示

一、前言 在 Qt 中&#xff0c;当一个窗口被最小化后&#xff0c;再次点击恢复它时&#xff0c;默认情况下&#xff0c;窗口恢复的方式可能并不总是显示在最顶层。这通常是因为窗口恢复后会被置于操作系统的默认层次结构中&#xff0c;而不是直接处于最上层。为了确保恢复后的窗…...

TCP 数据传输的拆包和粘包了解吗?

前言&#xff1a; 上一篇我们了解了什么是 TCP 协议&#xff0c;以及 TCP 协议 3 次握手 4次挥手的原因&#xff0c;本篇来分享一下 TCP 数据的传输过程的拆包和粘包&#xff0c;以及 TCP 数据传输过程中的一些细节。 计算机网络往期文章 TCP 为什么是 3 次握手 4 次挥手&am…...

Ubuntu常用自救方案

一、开机进入终端界面 莫名其妙进入终端界面了且死活出不来&#xff0c;原因可能是下载了些不该下的&#xff0c;或者卸载了些不能卸的。 万一真是这样可以尝试以下方法&#xff1a; 1.安装图形界面 第一行必安&#xff0c;2、3没试过 sudo apt-get install ubuntu-desktop …...

决策曲线分析(DCA)中平均净阈值用于评价模型算法(R自定义函数)

决策曲线分析&#xff08;DCA&#xff09;中平均净阈值用于评价模型算法 DCA分析虽然不强调用来评价模型算法或者变量组合的优劣&#xff0c;但是实际应用过程中感觉DCA曲线的走势和模型的效能具有良好的一致性&#xff0c;其实这种一致性也可以找到内在的联系&#xff0c;比如…...

【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut、QT)第三期

&#x1f37a;三维数字地球系列相关文章如下&#x1f37a;&#xff1a;1【小沐学GIS】基于C绘制三维数字地球Earth&#xff08;456:OpenGL、glfw、glut&#xff09;第一期2【小沐学GIS】基于C绘制三维数字地球Earth&#xff08;456:OpenGL、glfw、glut&#xff09;第二期3【小沐…...

回归预测 | MATLAB实现CNN-BiGRU-Attention卷积神经网络结合双向门控循环单元融合注意力机制多输入单输出回归预测

回归预测 | MATLAB实现CNN-BiGRU-Attention卷积神经网络结合双向门控循环单元融合注意力机制多输入单输出回归预测 目录 回归预测 | MATLAB实现CNN-BiGRU-Attention卷积神经网络结合双向门控循环单元融合注意力机制多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效…...

深度解析相对路径、绝对路径与URL映射策略、MVC架构

一、相对路径与绝对路径的概念与应用 路径管理是Web开发中的核心概念之一。理解不同类型的路径如何影响文件和资源的访问对于确保代码的灵活性、可维护性和可移植性至关重要。 1. 相对路径 相对路径是指相对于当前文件或目录的位置来指定目标资源的路径。它不依赖于绝对的服…...

clipboard----封装复制组件

Clipboard.js 是一个轻量级的 JavaScript 库&#xff0c;旨在帮助开发者轻松地实现将文本复制到剪贴板的功能。它不依赖 Flash 或其他外部库&#xff0c;并且提供了一种简单的方式来响应用户的复制行为。Clipboard.js 支持绑定到任何元素&#xff08;如按钮、图片等&#xff09…...

vue 中数据改变后,组件不更新

vue 中数据改变后&#xff0c;组件不更新 1.1. 确认响应式 1.2. 使用计算属性或侦听器 1.3. 检查异步更新队列 1.4. 手动触发更新 1.5. 检查数据绑定 1.6. 避免直接修改数组 1.7. 使用 Vue.set 或 this.$set 1.8. 检查作用域问题 1.9. 使用 Vue DevTools vue 中数据改变后&…...

使用C#和OPenCV实现圆形检测

文章目录 霍夫变换使用 OpenCV 和 C# 实现圆形检测 霍夫变换 在计算机视觉中&#xff0c;圆形检测是一个常见且有用的任务&#xff0c;特别是在物体识别、图像分析和图形处理等领域。OpenCV 是一个强大的开源计算机视觉库&#xff0c;它提供了许多工具来实现不同的图像处理功能…...

C++ 给定字符串,然后给出开始要取的位置,返回取到的信息

3 happy new year 7 year 1 new 4 new year year error input #include <stdio.h> #include <string.h> void strmcpy(char* s, char* t, int m); int main() {int repeat, m;char t[1000], s[1000];scanf("%d", &repeat);getchar(); //吸收换行符in…...

异步持久化策略对比

1.背景 游戏服务器其中一项重点工作&#xff0c;就是对游戏玩家的数据进行持久化&#xff0c;保证下次登录可以再续前缘。如果游戏服务器架构里没有缓存&#xff0c;每次操作都需要读写数据库&#xff0c;无疑对数据库带来非常大的压力。一旦使用缓存&#xff0c;就伴随异常持…...

手机租赁系统开发全流程解析与实用指南

内容概要 在如今快速发展的科技时代&#xff0c;手机租赁系统已经成为一种新兴的商业模式&#xff0c;非常符合当下市场需求。那么&#xff0c;在开发这样一个系统的时候&#xff0c;首先要从需求分析和市场调研开始。在这一阶段&#xff0c;你需要了解用户需要什么&#xff0…...

apache-dubbo

dubbo 文档地址 dubbo 官方文档地址 https://dubbo.apache.org/zh-cn/docs/user/references/api.html nacos 官方文档地址 https://nacos.io/zh-cn/docs/quick-start.html nacos下载地址 https://github.com/alibaba/nacos/releases/download/2.3.0/nacos-server-2.3.0.…...

【JavaEE】网络(1)

&#x1f435;本篇文章开始讲解计算机网络相关的知识 一、基础概念 1.1 局域网和广域网 局域网→Local Area Network→简称LAN&#xff0c;局域网是局部组建的一种私有网络&#xff0c;局域网内的主机之间可以进行网络通信&#xff0c;局域网和局域网之间在没有连接的情况不能…...

系统思考—决策

今年在为不同公司交付培训与项目时&#xff0c;常常听到“降本增效”的提法&#xff0c;但关键是&#xff1a;“降”的到底是什么成本&#xff1f;裁员无疑是最快的成本削减方式&#xff0c;但也可能带来人心惶惶。人力是资本&#xff0c;不是成本。除非企业到了生死存亡的关头…...

nVisual 前端集成SDK使用说明

目前客户需要搭建自己的可视化产品,但需要使用nVisual的可视化视图功能,根据目前项目实施需求,决定做了一款简单版的SDK视图插件,这个小插件的主要功能是嵌入到客户项目里给客户提供 ‘详细视图’‘拓扑视图’或者是‘主视图’的展示功能.目前已经开发完毕,这里做一下简单介绍.…...

上传文件时获取音视频文件时长和文本文件字数

获取音视频文件时长和文本文件字数 一、获取音视频文件时长二、计算文本文件字数 最近有个需求&#xff0c;要求上传文件时获取音视频文件时长和文本文件字数&#x1f436;。 发现这样的冷门资料不多&#xff0c;特做个记录。本文忽略文件上传功能&#xff0c;只封装核心的工具…...

[COLM 2024] V-STaR: Training Verifiers for Self-Taught Reasoners

本文是对 STaR 的改进方法&#xff0c;COLM 是 Conference On Language Models&#xff0c;大模型领域新出的会议&#xff0c;在国际上很知名&#xff0c;不过目前还没有被列入 ccf list&#xff08;新会议一般不会列入&#xff09;&#xff1b;作者来自高校、微软研究院和 Goo…...

【C++】string的主要功能模拟复现

经常调用的短小函数直接定义在头文件中&#xff0c;可以节省时间开销 #include<iostream> #include<assert.h> using namespace std; namespace mumu {class string{friend ostream& operator<<(ostream& _cout, const mumu::string& s);friend…...

Linux环境安装Jenkins

Linux环境安装Jenkins Jenkins和JDK的版本 Jenkins和JDK的版本需要对应&#xff0c;不然无法正常启动。 Jenkins稳定版下载地址 Jenkins服务 手动使用命令启动和关闭Jenkins比较麻烦&#xff0c;所以可以把Jenkins设置成开机启动。 创建Jenkins.sh文件 JAVA_HOME和jenk…...

Elasticsearch:ES|QL 中的全文搜索 - 8.17

细心的开发者如果已经阅读我前两天发布的文章 “Elastic 8.17&#xff1a;Elasticsearch logsdb 索引模式、Elastic Rerank 等”&#xff0c;你就会发现在 8.17 的发布版中&#xff0c;有一个重要的功能发布。那就是 ES|QL 开始支持全文搜索了。在今天的文章中我们来尝试一下。…...

Leetcode 3387. Maximize Amount After Two Days of Conversions

Leetcode 3387. Maximize Amount After Two Days of Conversions 1. 解题思路2. 代码实现 题目链接&#xff1a;3387. Maximize Amount After Two Days of Conversions 1. 解题思路 这一题思路上其实就是要分别求出day 1以及day 2中原始货币与其他各个货币之间的成交价&…...

Lumos学习王佩丰Excel第二十一讲:经典Excel动态图表实现原理

一、动态图表实现原理 1、理解图表中的数据系列 在Excel图表中&#xff0c;系列指的是图表中的数据集合&#xff0c;它通常代表着一个数据源。每个系列都可以包含多个数据点&#xff0c;这些数据点在图表中以特定的形式展现&#xff0c;如柱状图中的柱子&#xff0c;折线图中…...

静态路由、RIP、OSPF、BGP的区别

静态路由&#xff1a;是管理员手动将路由写入到路由器中&#xff0c;配置简单开销小&#xff0c;但不能适应网络变化&#xff0c;只用于小型的网络 RIP&#xff0c;路由信息协议&#xff0c;属于距离矢量路由协议的一种&#xff0c;根据跳数来判断最优路由&#xff0c;如果跳数…...

解决 Flutter 在 Mac 上的编译错误

解决 Flutter 在 Mac 上的编译错误 在使用 Flutter 进行项目开发并尝试在 Mac 设备上进行编译时&#xff0c;遇到了一系列的错误信息&#xff0c;这些错误信息给项目的构建与部署带来了阻碍。 一、错误详情 在编译过程中&#xff0c;Xcode 输出了大量的信息&#xff0c;其中…...

ECharts实现数据可视化入门详解

文章目录 ECharts实现数据可视化入门详解一、引言二、基础配置1.1、代码示例 三、动态数据与交互2.1、代码示例 四、高级用法1、多图表组合1.1、在同一容器中绘制多个图表1.2、创建多个容器并分别初始化 ECharts 实例1.3、实现多图联动 五、总结 ECharts实现数据可视化入门详解…...

LRM-典型 Transformer 在视觉领域的应用,单个图像生成3D图像

https://yiconghong.me/LRM. 一、Abstract 第一个大型重建模型&#xff08;LRM&#xff09;&#xff0c;它可以在5秒内从单个输入图像预测物体的3D模型。LRM采用了高度可扩展的基于transformer的架构&#xff0c;具有5亿个可学习参数&#xff0c;可以直接从输入图像中预测神经…...

Stream– ESP8266物联网应用,(客户端向服务器发送数据信息 客户端向服务器请求数据信息)

Stream– ESP8266物联网应用 Stream对于ESP8266-Arduino语言来说指的是数据序列。请留意&#xff1a;在C编程中Stream常被翻译作“流”。我们认为将Stream称为数据序列更加直观。因为数据序列这一概念有两个很关键特点。 第一个特点是“序”&#xff0c;即数据序列不能是杂乱…...

win10系统右下角没有显示网络图标 , 打开或关闭系统图标网络灰色

win10系统右下角没有显示网络图标 / 打开或关闭系统图标网络灰色 win10系统右下角没有显示网络图标, 并且打开或关闭系统图标网络灰色 解决方案: 首先&#xff0c;按【Ctrl Alt Del】组合键&#xff0c;然后点击【任务管理器】。任务管理器窗口&#xff0c;找到并选择【Wind…...

Python使用Selenium库获取 网页节点元素、名称、内容的方法

我们要用到一些网页源码信息&#xff0c;例如获取一些节点的class内容&#xff0c; 除了使用Beautifulsoup来解析&#xff0c;还可以直接用Selenium库打印节点&#xff08;元素&#xff09;名称&#xff0c;用来获取元素的文本内容或者标签名。 例如获取下面的class的内容&am…...

onnx文件转pytorch pt模型文件

onnx文件转pytorch pt模型文件 1.onnx2torch转换及测试2.存在问题参考文献 从pytorch格式转onnx格式&#xff0c;官方有成熟的API&#xff1b;那么假如只有onnx格式的模型文件&#xff0c;该怎样转回pytorch格式&#xff1f; https://github.com/ENOT-AutoDL/onnx2torch提供了…...

计算机网络中的SIP协议是什么?

SIP&#xff08;Session Initiation Protocol&#xff0c;会话初始化协议&#xff09;是由IETF&#xff08;Internet Engineering Task Force&#xff0c;因特网工程任务组&#xff09;制定的多媒体通信协议。以下是对SIP的详细简述&#xff1a; 一、SIP的基本概念 SIP是一个…...

Apache Kylin最简单的解析、了解

官网&#xff1a;Overview | Apache Kylin 一、Apache Kylin是什么&#xff1f; 由中国团队研发具有浓厚的中国韵味&#xff0c;使用神兽麒麟&#xff08;kylin&#xff09;为名 的一个OLAP多维数据分析引擎:&#xff08;据官方给出的数据&#xff09; 亚秒级响应&#xff…...

axfbinhexelf文件区别

0 Preface/Foreword axf,bin,hex,elf四个都能存在于嵌入式软件领域。 1 文件介绍 嵌入式软件中常见的文件包含&#xff1a; axf&#xff0c;包含调试信息&#xff0c;文件最大。调试信息放在机器码前面。elfhex&#xff0c;包含地址信息&#xff0c;文件内容较大。bin&#x…...

MySQL表自增id溢出的故障复盘,你是如何解决与监控的

文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons&#xff1a;JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram&#xff0c;自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 &#xff1f; 5 IDEA必装的插件&…...

03、SpirngMVC核心(下)

一、关于RESTful编程风格 什么是RESTful RESTful的英文全称是:Representational State Transfer(表述性状态转移) RESTful是Web服务接口的一种设计风格。它定了一组约束和规范,可以让Web服务接口更加简洁、易于理解、易于扩展、安全可靠。 RESTful对于请求的约束如下:…...

【游戏设计原理】10 - 科斯特的游戏理论

科斯特的游戏理论强调了游戏与学习之间的关系&#xff0c;认为“玩得开心”与“学习”是紧密相连的。换句话说&#xff0c;游戏的核心魅力在于通过适当的挑战和不断的学习进程激发玩家的内啡肽循环&#xff0c;这让玩家在不断的探索和进步中找到乐趣。 科斯特的理论通过游戏是…...

【JAVA】Java项目实战—Java EE项目:客户关系管理(CRM)系统

Java EE项目&#xff1a;客户关系管理&#xff08;CRM&#xff09;系统 一、背景介绍 1.1 Java语言的重要性 Java是一种广泛使用的编程语言&#xff0c;因其跨平台性、面向对象特性以及丰富的生态系统而受到开发者的青睐。Java EE&#xff08;Enterprise Edition&#xff09…...

JAVA 零拷贝技术和主流中间件零拷贝技术应用

目录 介绍Java代码里面有哪些零拷贝技术java 中文件读写方式主要分为什么是FileChannelmmap实现sendfile实现 文件IO实战需求代码编写实战IOTest.java 文件上传阿里云&#xff0c;测试运行代码看耗时为啥带buffer的IO比普通IO性能高&#xff1f;BufferedInputStream为啥性能高点…...

STM32软件IIC驱动TCA9548A多路测量AHT10

STM32软件IIC驱动TCA9548多路测量AHT10 TCA9548AAHT10代码逻辑代码展示现象总结 TCA9548A TCA9548A 有八个可通过 I2C 总线控制的双向转换开关&#xff0c;SCL/SDA 上行对扩展到八个下行对&#xff0c;或者通道&#xff0c;适用于系统中存在I2C目标地址冲突的情况。8路双向转换…...

博弈论3:图游戏SG函数(Graph Games)

目录 一、图游戏是什么 1.游戏特征 2.游戏实例 二、图游戏的必胜策略 1.SG 函数&#xff08;Sprague-Grundy Function&#xff09; 2.必胜策略&#xff08;利用SG函数&#xff09; 3.拿走游戏转化成图游戏&#xff08;Take-away Game -> Graph Game&#xff09; 一、图…...

音视频入门基础:MPEG2-TS专题(17)——FFmpeg源码中,解析TS program map section的实现

一、引言 由《音视频入门基础&#xff1a;MPEG2-TS专题&#xff08;16&#xff09;——PMT简介》可以知道&#xff0c;PMT表&#xff08;Program map table&#xff09;由一个或多个段&#xff08;Transport stream program map section&#xff0c;简称TS program map sectio…...

SQL server学习05-查询数据表中的数据(上)

目录 一&#xff0c;基本格式 1&#xff0c;简单的SQL查询语句 2&#xff0c;关键字TOP 3&#xff0c;关键字DISTINCT 二&#xff0c;模糊查询 1&#xff0c;通配符 三&#xff0c;对结果集排序 1&#xff0c;不含关键字DISTINCT 2&#xff0c;含关键字DISTINCT 3&…...

Transformer记录Attention is all you need

视频&#xff1a; Transformer 原理详解_哔哩哔哩_bilibili 代码&#xff1a; harvardnlp/annotated-transformer: An annotated implementation of the Transformer paper....