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

pyqt 上传文件或者文件夹打包压缩文件并添加密码并将密码和目标文件信息保存在json文件

一、完整代码实现

import sys
import os
import json
import pyzipper
from datetime import datetime
from PyQt5.QtWidgets import (QApplication, QWidget, QVBoxLayout, QHBoxLayout,QPushButton, QLineEdit, QLabel, QFileDialog,QMessageBox, QProgressBar)
from PyQt5.QtCore import Qt, QThread, pyqtSignal
from PyQt5.QtGui import QFont, QIconclass ZipThread(QThread):progress = pyqtSignal(int)finished = pyqtSignal(str)error = pyqtSignal(str)def __init__(self, source, password, parent=None):super().__init__(parent)self.source = sourceself.password = passwordself.zip_path = f"{os.path.splitext(source)}_encrypted.zip"def run(self):try:total_files = self.calculate_total_files()processed = 0with pyzipper.AESZipFile(self.zip_path, 'w', compression=pyzipper.ZIP_LZMA,encryption=pyzipper.WZ_AES) as zf:zf.setpassword(self.password.encode())if os.path.isdir(self.source):for root, dirs, files in os.walk(self.source):for file in files:full_path = os.path.join(root, file)arcname = os.path.relpath(full_path, start=self.source)zf.write(full_path, arcname)processed += 1self.progress.emit(int((processed/total_files)*100))else:zf.write(self.source, os.path.basename(self.source))self.progress.emit(100)self.save_metadata()self.finished.emit(self.zip_path)except Exception as e:self.error.emit(str(e))def calculate_total_files(self):if os.path.isfile(self.source):return 1count = 0for root, dirs, files in os.walk(self.source):count += len(files)return countdef save_metadata(self):metadata = {"timestamp": datetime.now().isoformat(),"source_path": self.source,"zip_path": self.zip_path,"file_size": os.path.getsize(self.zip_path),"algorithm": "AES-256"}with open(self.zip_path + ".json", 'w') as f:json.dump(metadata, f, indent=2)class SecureZipApp(QWidget):def __init__(self):super().__init__()self.selected_path = ""self.initUI()self.applyStyles()def initUI(self):self.setWindowTitle('安全文件压缩器')self.setWindowIcon(QIcon('lock_icon.png'))self.setFixedSize(500, 400)# 界面组件self.title_label = QLabel("安全加密压缩工具")self.path_label = QLabel("已选路径:无")self.progress_bar = QProgressBar()self.status_label = QLabel("就绪")self.pwd_input = QLineEdit()self.pwd_input.setPlaceholderText("输入加密密码(至少8位)")self.pwd_input.setEchoMode(QLineEdit.Password)# 按钮组btn_layout = QHBoxLayout()self.file_btn = QPushButton("📁 选择文件")self.dir_btn = QPushButton("📂 选择文件夹")self.start_btn = QPushButton("🔒 开始加密压缩")# 布局设置main_layout = QVBoxLayout()main_layout.addWidget(self.title_label, alignment=Qt.AlignCenter)main_layout.addSpacing(20)main_layout.addWidget(self.path_label)main_layout.addWidget(self.pwd_input)main_layout.addSpacing(15)btn_layout.addWidget(self.file_btn)btn_layout.addWidget(self.dir_btn)main_layout.addLayout(btn_layout)main_layout.addSpacing(30)main_layout.addWidget(self.progress_bar)main_layout.addWidget(self.status_label)main_layout.addWidget(self.start_btn)self.setLayout(main_layout)# 信号连接self.file_btn.clicked.connect(self.select_file)self.dir_btn.clicked.connect(self.select_dir)self.start_btn.clicked.connect(self.start_compression)def applyStyles(self):self.setStyleSheet("""\QWidget {\background-color: #F5F7FA;\font-family: 'Segoe UI';\}\QLabel#title_label {\font-size: 24px;\color: #2C3E50;\font-weight: bold;\}\QPushButton {\background-color: #4CAF50;\color: white;\border: none;\padding: 10px 20px;\border-radius: 5px;\font-size: 14px;\}\QPushButton:hover {\background-color: #45a049;\}\QLineEdit {\padding: 8px;\border: 2px solid #BDC3C7;\border-radius: 4px;\font-size: 14px;\}\QProgressBar {\height: 20px;\text-align: center;\border: 2px solid #BDC3C7;\border-radius: 5px;\}\QProgressBar::chunk {\background-color: #4CAF50;\width: 10px;\}\""")self.title_label.setObjectName("title_label")self.title_label.setFont(QFont("Arial", 16, QFont.Bold))self.status_label.setStyleSheet("color: #7F8C8D; font-size: 12px;")def select_file(self):path, _ = QFileDialog.getOpenFileName(self, "选择文件")if path:self.selected_path = pathself.path_label.setText(f"已选文件:{os.path.basename(path)}")self.status_label.setText("就绪")def select_dir(self):path = QFileDialog.getExistingDirectory(self, "选择文件夹")if path:self.selected_path = pathself.path_label.setText(f"已选文件夹:{os.path.basename(path)}")self.status_label.setText("就绪")def start_compression(self):if not self.selected_path:QMessageBox.warning(self, "警告", "请先选择文件或文件夹")returnif len(self.pwd_input.text()) < 8:QMessageBox.warning(self, "警告", "密码长度至少8位")returnself.thread = ZipThread(self.selected_path, self.pwd_input.text())self.thread.progress.connect(self.update_progress)self.thread.finished.connect(self.on_success)self.thread.error.connect(self.on_error)self.thread.start()self.start_btn.setEnabled(False)self.status_label.setText("正在压缩...")def update_progress(self, value):self.progress_bar.setValue(value)def on_success(self, zip_path):self.start_btn.setEnabled(True)self.status_label.setText("操作完成")QMessageBox.information(self, "成功", f"加密压缩完成!\n保存路径:{zip_path}\n元数据文件:{zip_path}.json")def on_error(self, message):self.start_btn.setEnabled(True)self.status_label.setText("操作失败")QMessageBox.critical(self, "错误", f"发生错误:{message}")if __name__ == '__main__':app = QApplication(sys.argv)window = SecureZipApp()window.show()sys.exit(app.exec_())

二、界面美化特色

  1. 现代UI设计

    • 采用扁平化设计风格
    • 使用系统图标符号(📁📂🔒)提升直观性
    • 自定义QSS样式表实现渐变按钮和圆角边框
  2. 交互优化

    • 实时路径显示
    • 动态进度条反馈
    • 状态标签提示当前操作阶段
    • 按钮禁用状态防止重复操作
  3. 安全增强

    • 密码强度验证(至少8位)
    • 密码输入掩码显示
    • 元数据文件独立存储(避免密码泄露)
  4. 响应式布局

    • 固定窗口尺寸防止变形
    • 智能间距控制
    • 组件对齐优化

三、使用说明

  1. 选择文件/文件夹
  2. 输入8位以上加密密码
  3. 点击加密压缩按钮
  4. 查看生成的.zip文件和同名的.json元数据文件

由小艺AI生成<xiaoyi.huawei.com>

相关文章:

pyqt 上传文件或者文件夹打包压缩文件并添加密码并将密码和目标文件信息保存在json文件

一、完整代码实现 import sys import os import json import pyzipper from datetime import datetime from PyQt5.QtWidgets import (QApplication, QWidget, QVBoxLayout, QHBoxLayout,QPushButton, QLineEdit, QLabel, QFileDialog,QMessageBox, QProgressBar) from PyQt5.…...

Java 大视界 -- Java 大数据机器学习模型的对抗攻击与防御技术研究(137)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

中间件漏洞之weblogic

目录 weblogic简介弱口令后台getshell漏洞利用修复建议 CVE-2017-10271xmldecoder反序列化漏洞漏洞利用修复建议 CVE-2018-2894任意文件上传漏洞利用修复建议 CVE-2014-4210 weblogic ssrf漏洞利用修复建议 CVE-2020-14882&14883漏洞利用修复建议 CVE-2018-2628漏洞利用修复…...

centos 安装pip时报错 Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64

centos 安装pip时报错 [rootindex-es app-ai]# yum update Loaded plugins: fastestmirror Repository centos-sclo-rh is listed more than once in the configuration Determining fastest mirrors Could not retrieve mirrorlist http://mirrorlist.centos.org?archx86_64…...

Pika 技术浅析(三):扩散模型

扩散模型(Diffusion Models)是近年来在生成模型领域中取得显著进展的一种方法,尤其在图像和视频生成任务中表现出色。Pika在其视频生成过程中采用了扩散模型,通过前向扩散过程和逆向扩散过程,实现了从噪声生成高质量视频的功能。 1. 基本原理 1.1 扩散模型的核心思想 扩…...

【HarmonyOS Next之旅】DevEco Studio使用指南(三)

目录 1 -> 一体化工程迁移 1.1 -> 自动迁移 1.2 -> 手动迁移 1.2.1 -> API 10及以上历史工程迁移 1.2.2 -> API 9历史工程迁移 1 -> 一体化工程迁移 DevEco Studio从 NEXT Developer Beta1版本开始&#xff0c;提供开箱即用的开发体验&#xff0c;将SD…...

Node.js系列(1)--架构设计指南

Node.js架构设计指南 &#x1f3d7;️ 引言 Node.js作为一个高性能的JavaScript运行时环境&#xff0c;其架构设计对于构建可扩展的服务端应用至关重要。本文将深入探讨Node.js的架构设计原则、最佳实践和实现方案。 架构概述 Node.js架构主要包括以下方面&#xff1a; 事…...

Pytorch学习笔记

1.gather选择函数的用法 PyTorch入门笔记-gather选择函数 2.max函数的用法 Pytorch的max()与min()函数...

JAVA | 聚焦 String 的常见用法与底层内存原理

*个人主页 文章专栏 《赛博算命之梅花易数的JAVA实现》* 文章目录 *[个人主页](https://blog.csdn.net/2401_87533975?spm1011.2124.3001.5343)文章专栏《赛博算命之梅花易数的JAVA实现》* #前言&#xff1a;API1.定义2.已经学习过的API3.如何使用帮助文档&#xff1a; 一、…...

CAN总线的CC帧和FD帧之间如何仲裁

为满足CAN总线日益提高的带宽需求&#xff0c;博世公司于2012年推出CAN FD&#xff08;具有灵活数据速率的CAN&#xff09;标准&#xff0c;国际标准化组织&#xff08;ISO&#xff09;2015年通过ISO 11898-1:2015标准&#xff0c;正式将CAN FD纳入国际标准&#xff0c;以示区别…...

提升 React 应用性能:使用 React Profiler 进行性能调优

前言 在现代前端开发中&#xff0c;性能优化是一个不可忽视的重要环节。在 React 生态系统中&#xff0c;React Profiler 是一个强大的工具&#xff0c;它可以帮助我们检测和优化应用的性能。 本文将通过通俗易懂的语言介绍 React Profiler 的作用&#xff0c;并展示如何使用它…...

【QT】-toUtf8() 和 toBase64()的区别

toUtf8() 和 toBase64() 在 Qt 中是两个不同的函数&#xff0c;它们用于不同的目的&#xff1a; toUtf8()&#xff1a;将 QString 转换为 UTF-8 编码的字节数组&#xff08;QByteArray&#xff09;。 toBase64()&#xff1a;将字节数组&#xff08;通常是二进制数据&#xff0…...

Git 面试问题,解决冲突

1.问题描述 在多人协作开发中&#xff0c;当多个开发者在同一文件的同一部分进行修改并提交时&#xff0c;Git 无法自动合并这些更改&#xff0c;从而产生代码冲突&#xff08;Conflict&#xff09;。冲突的代码会被 Git 标记出来&#xff0c;需要开发者手动解决。 冲突原因 多…...

天梯赛训练L1-031——L1-040

天梯赛训练L1-031——L1-040 L1-031 到底是不是太胖了 import math n int(input()) for i in range(n):h,w map(int,input().split())w / 2biaozhun (h - 100)* 0.9if math.fabs(biaozhun - w) < biaozhun * 0.1:print("You are wan mei!")elif w < biaoz…...

C语言 —— 此去经年梦浪荡魂音 - 深入理解指针(卷二)

目录 1. 数组名与地址 2. 指针访问数组 3.一维数组传参本质 4.二级指针 5. 指针数组 6. 指针数组模拟二维数组 1. 数组名与地址 我们先看下面这个代码&#xff1a; int arr[10] { 1,2,3,4,5,6,7,8,9,10 };int* p &arr[0]; 这里我们使用 &arr[0] 的方式拿到了数…...

面试中文版示例

各位老师好&#xff0c;我是*** &#xff0c;2010 年毕业于****大学&#xff0c;信息管理与信息系统专 业&#xff0c;获得管理学学士学位&#xff0c;同时学习了*****&#xff0c;取得国家中级物流师认证。 在校期间多次获得一、二等奖学金。作为文艺部部长&#xff0c;经常…...

C++多线程编程 4.condition_variable 条件变量

概念&#xff1a; std::condition_variable 是 C 标准库中用于实现线程间同步的类。它提供了等待和通知的机制&#xff0c;使得线程可以等待某个条件成立时被唤醒&#xff0c;或者在满足某个条件时通知其他等待的线程。 语法&#xff1a; #include <condition_variable&g…...

基于51单片机的12864模拟示波器proteus仿真

地址&#xff1a; https://pan.baidu.com/s/12SGtyqAYKOAjx6rjtTz5Nw 提取码&#xff1a;1234 仿真图&#xff1a; 芯片/模块的特点&#xff1a; AT89C52/AT89C51简介&#xff1a; AT89C51 是一款常用的 8 位单片机&#xff0c;由 Atmel 公司&#xff08;现已被 Microchip 收…...

C++数据结构哈希表的实现(开散列实现、闭散列实现)

C哈希 1. 哈希概念 哈希作为数据结构时&#xff0c;是一种通过某种哈希函数使元素的存储位置与它的关键码之间建立一一映射的关系&#xff0c;在查找时通过该函数就能快速找到该元素&#xff0c;平均时间复杂度为 O ( 1 ) \rm O(1) O(1) &#xff0c;且遍历结果是无序的。 …...

显著性检测分类(数据集和评估指标总结)

一&#xff1a;RGB显著性检测 常用数据集 其中有DUTS&#xff0c;ECSSD&#xff0c;DUT-OMRON&#xff0c;PASCAL-S&#xff0c;HKU-IS&#xff0c;SOD&#xff0c;SOC&#xff0c;MSRA-B &#xff08;1&#xff09;DUTS&#xff1a;DUTS-TR(训练集):10553张&#xff0c;DUT…...

【R语言】使用DESeq2对微生物组进行差异分析

代码展示&#xff1a; asv <- read.delim(paste0(input,_0.5wen.10050.asv_table.txt), row.names 1, sep \t, stringsAsFactors FALSE, check.names FALSE) group <- read.delim(paste0(group2_,input,.txt),row.names 1,sep \t) asv <- asv1 #将变量转换为因…...

什么是广播系统语言传输指数 STIPA

广播系统语言传输指数&#xff08;STIPA&#xff09;‌ 是用于评估公共广播系统中语音信号传输质量的国际标准指标&#xff0c;主要用于衡量语音清晰度和可懂度。以下是其关键信息&#xff1a; 1. ‌定义与作用‌ ‌STIPA‌&#xff08;Speech Transmission Index for Public…...

【Json—RPC框架】:宏定义不受命名空间限制,续行符的错误使用造成的bug

为什么不受命名空间的限制&#xff1f; 宏处理在预处理阶段&#xff0c; 预处理在编译之前&#xff0c;编译才进行语法分析&#xff0c;语义分析。命名空间也只能限制这部分。 在Json-RPC框架的实现中&#xff0c;遇到如下问题。一开始以为是在实现日志宏的时候&#xff0c;有…...

解决前端文字超高度有滚动条的情况下padding失效(el-scrollbar)使用

<div class"detailsBlocksContent"><div>测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试…...

失败的面试经历(ʘ̥∧ʘ̥)

一.面向对象的三大特性 1.封装&#xff1a;将对象内部的属性私有化&#xff0c;外部对象不能够直接访问&#xff0c;但是可以提供一些可以使外部对象操作内部属性的方法。 2.继承&#xff1a;类与类之间会有一些相似之处&#xff0c;但也会有一些异处&#xff0c;使得他们与众…...

大数据学习(70)-大数据调度工具对比

&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一…...

Description of a Poisson Imagery Super Resolution Algorithm 论文阅读

Description of a Poisson Imagery Super Resolution Algorithm 1. 研究目标与意义1.1 研究目标1.2 实际意义2. 创新方法与模型2.1 核心思路2.2 关键公式与推导2.2.1 贝叶斯框架与概率模型2.2.2 MAP估计的优化目标2.2.3 超分辨率参数α2.3 对比传统方法的优势3. 实验验证与结果…...

PIP离线安装包

获得离线包 pip freeze >requirements.txt pip download -rrequirements.txt 可以看到pip开始下载依赖包列表中的所有依赖包 安装离线包 如果你希望完全从本地 .whl 文件安装依赖&#xff0c;而不从 PyPI 或其他外网源下载任何包&#xff0c;可以使用 --no-index 参数来…...

动静态库区别

目录 示例 动静态库区别 定义和链接方式 文件大小 内存使用 更新和维护 加载时间 依赖关系 适用场景 动静态库总结 示例 Linux系统中ls也是一个进程&#xff0c;它运行也得依赖动态库&#xff0c;那么学习动静态库区别是有必要的&#xff01;&#xff01;&#xff01;…...

剑指 Offer II 076. 数组中的第 k 大的数字

comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof2/%E5%89%91%E6%8C%87%20Offer%20II%20076.%20%E6%95%B0%E7%BB%84%E4%B8%AD%E7%9A%84%E7%AC%AC%20k%20%E5%A4%A7%E7%9A%84%E6%95%B0%E5%AD%97/README.md 剑指 Offer II 076. 数组中的第 k 大的数字 …...

容联云大模型应用入选甲子光年AI Agent产业图谱

近日&#xff0c;甲子光年发布《2025中国AI Agent行业研究报告》&#xff0c;旨在系统梳理AI Agent技术演进与产业重构路径&#xff0c;展示行业标杆厂商及先锋实践。 容联云凭借卓越的Copilot & Agent产品和解决方案&#xff0c;以及在银行、保险等领域的成熟应用验证&…...

机器学习——深入浅出理解朴素贝叶斯算法

文章目录 引言一、朴素贝叶斯定理概述1.从贝叶斯定理说起2.朴素贝叶斯的“朴素”之处3.朴素贝叶斯算法的应用 二、朴素贝叶斯算法的优缺点三、python代码实现案例1.导入库2.数据预处理3.模型训练4.模型评估5.完整代码 四、总结 引言 朴素贝叶斯算法&#xff0c;一个听起来充满…...

TCP/IP协议中三次握手(Three-way Handshake)与四次挥手(Four-way Wave)

TCP/IP协议中三次握手&#xff08;Three-way Handshake&#xff09;与四次挥手&#xff08;Four-way Wave&#xff09; 一、TCP三次握手&#xff08;Three-way Handshake&#xff09;二、TCP四次挥手&#xff08;Four-way Wave&#xff09;三、常见问题解答总结为什么三次握手不…...

【CF】Day9——Codeforces Round 953 (Div. 2) BCD

B. New Bakery 题目&#xff1a; 思路&#xff1a; 被标签害了&#xff0c;用什么二分&#xff08; 很简单的思维题&#xff0c;首先如果a > b&#xff0c;那么全选a就行了&#xff0c;还搞啥活动 否则就选 b - a 天来搞活动&#xff0c;为什么&#xff1f; 首先如果我…...

【AI知识管理系统】(一)AI知识库工具测评

嘿,朋友们!🧐你们有没有想过,咱们平日里那些一闪而过的知识笔记、各种碎片化的idea,记录下来之后都是怎么管理的呀? 还有啊,咱们读过的那些书,大家会不会随手写点东西记录一下呢?📝要知道,如果不写的话,很可能过不了多久就全忘得一干二净啦。 😭那多年前记下的…...

Model Context Protocol 的生命周期

生命周期阶段 生命周期分为三个主要阶段&#xff1a; 初始化阶段 (Initialization) 客户端与服务器建立协议版本兼容性。交换并协商能力。分享实现细节。客户端必须发送 initialize 请求&#xff0c;包含支持的协议版本、客户端能力和客户端实现信息。服务器必须响应其自身能力…...

hot100_part_堆

不该要求事情一开始就是完美。 堆排序 【从堆的定义到优先队列、堆排序】 10分钟看懂必考的数据结构——堆_哔哩哔哩_bilibili 排序算法&#xff1a;堆排序【图解代码】_哔哩哔哩_bilibili 堆定义 堆必须是完全二叉树&#xff0c;从上到下&#xff0c;从左到右不能用空缺。…...

CoreData 调试警告:多个 NSEntityDescriptions 声明冲突的解决

概述 目前在苹果生态 App 的开发中&#xff0c;CoreData 数据库仍然是大部分中小应用的优先之选。不过&#xff0c;运行时 CoreData 常常产生各种“絮絮叨叨”的警告不禁让初学的秃头小码农们云里雾里。 这不&#xff0c;对于下面这一大段 CoreData 警告&#xff0c;大家是否一…...

【白话神经网络(二)】矩阵、CNN、RNN

全连接层 回顾前面学过的知识&#xff1a; 一个最简单的神经网络&#xff0c;就是ywxb 套上一个激活函数。 如果有多个输入&#xff0c;那就是多个w和x 如果有多个输出&#xff0c;那就再来一行公式&#xff0c;多一组w和b 要是神经元多了的话&#xff0c;公式密密麻麻的&…...

map容器练习:使用map容器识别统计单词个数

题目链接&#xff1a;单词识别_牛客题霸_牛客网 对map的使用不太熟悉的同学可以参考&#xff1a;超详细介绍map&#xff08;multimap&#xff09;的使用-CSDN博客 题目解析 输入一个英文句子&#xff0c;把句子中的单词(不区分大小写)按出现次数按从多到少把单词和次数在屏幕…...

DeepSeek 是否被过度吹捧了?

DeepSeek 作为中国人工智能领域的后起之秀&#xff0c;其技术进展引发了广泛关注和讨论。然而&#xff0c;DeepSeek 是否被过度吹捧仍然值得客观分析。 DeepSeek 的确取得了不错的成果&#xff0c;不过可能没有媒体宣传和人们想象中那么重大。它的轰动性主要在于以低廉的成本达…...

前端大文件上传(分片上传)与下载

文章目录 一、问题二、思路1、选择文件2、校验文件是否符合规范3、文件切片上传4、分片上传注意点5、大文件下载 一、问题 日常业务中难免出现前端需要向后端传输大型文件的情况&#xff0c;这时单次的请求不能满足传输大文件的需求&#xff0c;就需要用到分片上传 业务需求为…...

【最佳实践】Go 状态模式

设计思路 状态模式的核心在于将对象的行为封装在特定的状态类中&#xff0c;使得对象在不同的状态下表现出不同的行为。每个状态实现同一个接口&#xff0c;允许对象在运行时通过改变其内部状态对象来改变其行为。状态模式使得状态转换更加明确&#xff0c;并且易于扩展新的状…...

如何用Python批量将CSV文件编码转换为UTF-8并转为Excel格式?

在处理数据时&#xff0c;CSV文件格式常常用作数据的交换格式。不过&#xff0c;很多情况下我们会遇到编码问题&#xff0c;特别是当文件不是UTF-8编码时。为了更好地处理这些文件&#xff0c;可能需要将它们转换为UTF-8编码&#xff0c;并且将其转换为Excel格式&#xff0c;这…...

回顾Transformer,并深入讲解替代方案Mamba原理(图解)

一种语言建模中 Transformer 的替代方案 Transformer 架构是大语言模型&#xff08;LLMs&#xff09;成功的关键组成部分。几乎所有今天使用的大语言模型都采用了该架构&#xff0c;从开源模型如 Mistral 到闭源模型如 ChatGPT。 为了进一步改进大语言模型&#xff0c;新的架构…...

2025开源风险治理最佳实践︱新能源汽车车企开源风险治理案例

案例来源&#xff1a;悬镜安全 案例背景 当前我国新能源汽车产业蓬勃发展&#xff0c;智能网联趋势持续深化。汽车技术与工程核心逐渐从传统硬件层面转移到软件层面&#xff0c;踏上软件定义汽车(SDV)的变革之路。引用开源组件成为车企、Tier1、Tier2在软件开发过程中的常规操…...

Spring中Bean的自动装配

1.自动装配的核心概念 定义&#xff1a; Bean的自动装配是Spring框架中用于自动满足Bean依赖的一种机制。通过自动装配&#xff0c;Spring容器会在应用上下文中为某个Bean寻找其依赖的Bean&#xff0c;从而减少手动配置的工作量。其核心目标是减少配置代码&#xff0c;通过类型…...

一文掌握 PostgreSQL 的各种指令(PostgreSQL指令备忘)

引言 PostgreSQL 作为一款功能强大、开源的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;以其高扩展性、SQL 标准兼容性以及丰富的功能特性&#xff0c;成为企业级应用的首选数据库之一。无论是开发、运维还是数据分析&#xff0c;掌握 PostgreSQL 的核心指…...

C#入门学习记录(三)C#中的隐式和显示转换

C#类型转换&#xff1a;隐式与显式转换的机制与应用 在C#的强类型体系中&#xff0c;数据类型转换是实现数据交互和算法逻辑的基础操作。当数值类型范围存在包含关系&#xff0c;或对象类型存在继承层次时&#xff0c;系统通过预定义的转换规则实现类型兼容处理。隐式转换&…...

【Linux网络-网络层】TCP与IP的关系+IP协议基本概念+网段划分+路由+IP分片与组装

网络层 在复杂的网络环境中确定一个合适的路径 一、TCP与IP的关系 TCP&#xff08;传输控制协议&#xff09;和IP&#xff08;互联网协议&#xff09;是互联网协议栈中的两个核心协议&#xff0c;属于不同的层级&#xff0c;分别在传输层和网络层&#xff0c;共同实现数据的可…...