Jvascript网页设计案例:通过js实现一款密码强度检测,适用于等保测评整改
本文目录
- 前言
- 功能预览
- 样式特点总结:
- 1. 整体视觉风格
- 2. 密码输入框设计
- 3. 强度指示条
- 4. 结果文本与原因说明
- 功能特点总结:
- 1. 密码强度检测
- 2. 实时反馈机制
- 3. 详细原因说明
- 4. 视觉提示
- 5. 交互体验优化
- 密码强度检测逻辑
- Html代码
- Javascript代码
前言
能满足等级保护测评要求的基本功能都实现了,可能还存在部分功能没有添加,密码强度验证逻辑可能还有需要强化的地方,有问题欢迎评论区讨论~
功能预览
样式特点总结:
1. 整体视觉风格
- 使用深色主题背景,搭配线性渐变(从
#141E30
到#243B55
),营造专业且现代的视觉效果。 - 容器使用半透明黑色背景(
rgba(0, 0, 0, 0.6)
),边缘带有圆角(border-radius: 15px
)和阴影效果(box-shadow
),提升界面的层次感。
2. 密码输入框设计
- 输入框采用无边框设计,背景色为浅灰色(
rgba(255, 255, 255, 0.1)
),聚焦时背景色变深(rgba(255, 255, 255, 0.2)
),提供良好的交互反馈。 - 输入框字体大小适中(
font-size: 16px
),占满容器宽度(width: 100%
),确保良好的可用性。
3. 强度指示条
- 强度指示条由三个彩色块组成(红色
#FF4136
、黄色#FFDC00
、绿色#2ECC40
),每个块的高度固定(height: 10px
),宽度随强度变化。 - 使用过渡效果(
transition: width 0.3s ease
)使颜色块变化平滑。 - 未激活的块设置为低透明度(
.hidden { opacity: 0.2; }
),增强视觉层次。
4. 结果文本与原因说明
- 结果文字根据强度不同显示不同颜色(弱:红色;中:黄色;强:绿色)。
- 原因说明部分使用无序列表展示具体原因,左侧带有项目符号(
list-style-type: disc
),排版清晰易读。
功能特点总结:
1. 密码强度检测
- 检测密码的长度(最低要求 8 位)、字符类型(大写/小写字母、数字、特殊字符)以及是否存在安全隐患(如连续数字、重复字符、键盘规律等)。
- 提供三种强度评级:弱(Weak)、中(Medium)、强(Strong),并实时更新结果。
2. 实时反馈机制
- 在用户输入过程中,实时检测密码强度并更新界面显示。
- 当密码为空时,提示用户“请输入密码”。
3. 详细原因说明
- 对于强度较弱或中等的密码,显示具体原因(如“密码长度不足8位”、“包含连续数字”等),帮助用户改进密码。
4. 视觉提示
- 使用颜色块动态展示密码强度,直观明了。
- 不同强度对应不同的颜色和提示信息,便于用户快速理解结果。
5. 交互体验优化
- 输入框聚焦时背景色变化,提供良好的交互反馈。
- 原因说明部分使用无序列表,排版清晰,易于阅读。
密码强度检测逻辑
这个密码强度检测工具的核心逻辑主要集中在 checkPasswordStrength
函数中。以下是详细的逻辑总结:
- 基础条件检测
密码强度检测基于以下基础条件:
- 密码长度:密码长度必须至少为 8 位。
- 字符类型:密码必须包含以下至少两种字符类型:
- 大写字母(A-Z)
- 小写字母(a-z)
- 数字(0-9)
- 特殊字符(非字母数字字符)
- 安全性检查
密码强度检测还包括以下安全性检查:
- 连续数字:检测密码中是否包含连续的数字序列(例如
123
、456
等)。 - 重复字符:检测密码中是否存在重复的字符(例如
aa
、bb
等)。 - 键盘规律:检测密码是否符合常见的键盘输入规律(例如
qwe
、123
、asdf
等)。 - 跨行键盘规律:检测密码是否符合跨行键盘输入规律(例如
qaz
、wsx
等)。
-
强度评级规则
根据上述条件,密码强度分为以下三个等级: -
弱(Weak):
- 密码长度不足 8 位。
- 密码仅包含两种或更少字符类型。
- 密码存在连续数字、重复字符或符合键盘输入规律。
- 密码缺少特殊字符。
-
中(Medium):
- 密码长度达到 8 位以上。
- 密码包含三种字符类型。
- 密码不存在明显的安全风险(如连续数字、重复字符或键盘规律)。
-
强(Strong):
- 密码长度达到 8 位以上。
- 密码包含四种字符类型(大写字母、小写字母、数字、特殊字符)。
- 密码不存在连续数字、重复字符或键盘规律。
-
详细逻辑流程
以下是checkPasswordStrength
函数的详细逻辑流程: -
初始检查:
- 如果密码为空,返回“请输入密码”的提示信息。
-
字符类型检测:
- 检查密码是否包含大写字母、小写字母、数字和特殊字符,并记录包含的字符类型。
-
安全性检查:
- 使用正则表达式检测密码中是否存在连续数字(
SEQUENTIAL_NUMBER_REGEX
)。 - 使用正则表达式检测密码中是否存在重复字符(
REPEATED_CHARS_REGEX
)。 - 使用正则表达式检测密码中是否存在键盘规律(
KEYBOARD_REGEX
)。 - 检查密码是否符合跨行键盘规律(通过
keyboardLayoutIndexes
和keyboardLayout
实现)。
- 使用正则表达式检测密码中是否存在连续数字(
-
强度评级:
- 如果密码长度不足 8 位或存在明显安全风险(如连续数字、重复字符或键盘规律),评级为“弱”。
- 如果密码包含三种字符类型且不存在明显安全风险,评级为“中”。
- 如果密码包含四种字符类型且不存在任何安全风险,评级为“强”。
-
结果反馈:
- 返回密码强度评级和具体原因(例如“密码强度:弱”、“密码长度不足8位”等)。
Html代码
<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="UTF-8"><title>密码强度检测</title><style>body {font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;margin: 0;padding: 0;background: linear-gradient(to bottom right, #141E30, #243B55);color: #e0e0e0;display: flex;justify-content: center;align-items: center;min-height: 100vh;}.container {background-color: rgba(0, 0, 0, 0.6);padding: 40px;border-radius: 15px;box-shadow: 0 0 20px rgba(0, 0, 0, 0.8);width: 400px;}h1 {color: #e0e0e0;text-align: center;margin-bottom: 30px;font-size: 28px;}/* 密码输入框样式 */.password-input {width: 100%;padding: 15px;margin-bottom: 20px;border: none;border-radius: 8px;box-sizing: border-box;background-color: rgba(255, 255, 255, 0.1);color: #e0e0e0;font-size: 16px;outline: none;transition: background-color 0.3s ease;}.password-input:focus {background-color: rgba(255, 255, 255, 0.2);}.strength-meter {height: 10px;width: 100%;background-color: rgba(255, 255, 255, 0.1);border-radius: 10px;margin-bottom: 20px;overflow: hidden;display: flex;}.strength-bar {height: 100%;transition: width 0.3s ease, background-color 0.3s ease;width: 33.33%;}.strength-bar:nth-child(1) {background-color: #FF4136; }.strength-bar:nth-child(2) {background-color: #FFDC00; }.strength-bar:nth-child(3) {background-color: #2ECC40; }.strength-bar.hidden {opacity: 0.2;}.result-text {margin-bottom: 10px;font-weight: bold;font-size: 18px;text-align: center;}.weak-text {color: #FF4136;}.medium-text {color: #FFDC00;}.strong-text {color: #2ECC40;}.reasons {margin-top: 20px;}.reasons p {margin-bottom: 10px;font-size: 16px;}.reasons ul {list-style-type: disc;padding-left: 20px;font-size: 14px;}</style>
</head><body><div class="container"><h1>密码强度检测</h1><input type="password" class="password-input" placeholder="请输入密码"><div class="strength-meter"><div class="strength-bar hidden"></div><div class="strength-bar hidden"></div><div class="strength-bar hidden"></div></div><div class="result-text"></div><div class="reasons"></div></div>
</body></html>
Javascript代码
<script>const passwordInput = document.querySelector('.password-input');const strengthBars = document.querySelectorAll('.strength-bar');const resultText = document.querySelector('.result-text');const reasonsDiv = document.querySelector('.reasons');const MIN_PASSWORD_LENGTH = 8;const SEQUENTIAL_NUMBER_REGEX = /(?:012|123|234|345|456|567|678|789|987|876|765|654|543|432|321|210)/;const REPEATED_CHARS_REGEX = /([a-zA-Z])\1/i;const keyboardLayout = ['`1234567890-=','qwertyuiop[]\\','asdfghjkl;\'','zxcvbnm,./'].join('');const keyboardLayoutIndexes = {};for (let i = 0; i < keyboardLayout.length; i++) {keyboardLayoutIndexes[keyboardLayout[i]] = i;}// 键盘规律正则表达式const keyboardPatterns = [// 单行规律 'qwe', 'wer', 'ert', 'rty', 'tyu', 'yui', 'uio', 'iou','asd', 'sdf', 'dfg', 'fgh', 'ghj', 'hjk', 'jkl','zxc', 'xcv', 'cvb', 'vbn',// 符号键盘 '!@#', '@#$', '#$%', '$%^', '%^&', '^&*', '&*(','!qwe', '@wsx', '#edc', '$rfv', '%tgb', '^yhn', '&ujm', '*k,',// 数字键盘 '123', '234', '345', '456', '567', '678', '789','987', '876', '765', '654', '543', '432', '321','147', '258', '369',// 跨行规律 'qaz', 'wsx', 'edc', 'rfv', 'tgb', 'yhn', 'ujm', 'k\\.,','QAZ', 'WSX', 'EDC', 'RFV', 'TGB', 'YHN', 'UJM', 'K\\.,',// 符号+字母跨行 '!qaz', '@wsx', '#edc', '$rfv', '%tgb', '^yhn', '&ujm', '*k,','!QAZ', '@WSX', '#EDC', '$RFV', '%TGB', '^YHN', '&UJM', '*K,',// 数字+字母跨行 '1qaz', '2wsx', '3edc', '4rfv', '5tgb', '6yhn', '7ujm', '8k,','1QAZ', '2WSX', '3EDC', '4RFV', '5TGB', '6YHN', '7UJM', '8K.',// 添加大小写混合的情况'1QaZ', '2WsX', '3EdC', '4RfV', '5TgB', '6YhN', '7UjM', '8K.','!QaZ', '@WsX', '#EdC', '$RfV', '%TgB', '^YhN', '&UjM', '*K,'];const regexPatterns = keyboardPatterns.map(pattern => pattern.replace(/([.*+?^${}() |[\]\\])/g, '\\$1'));const KEYBOARD_REGEX = new RegExp(regexPatterns.join('|'), 'i');function checkPasswordStrength(password) {if (!password) {return { strength: 'empty', reasons: ['请输入密码'] };}const hasUpperCase = /[A-Z]/.test(password);const hasLowerCase = /[a-z]/.test(password);const hasNumbers = /\d/.test(password);const hasSpecialChars = /[^a-zA-Z\d]/.test(password);const charTypes = [];if (hasUpperCase) charTypes.push(' 大写字母');if (hasLowerCase) charTypes.push(' 小写字母');if (hasNumbers) charTypes.push(' 数字');if (hasSpecialChars) charTypes.push(' 特殊字符');const hasSequentialNumbers = SEQUENTIAL_NUMBER_REGEX.test(password);const hasRepeatedChars = REPEATED_CHARS_REGEX.test(password);const hasKeyboardPattern = KEYBOARD_REGEX.test(password);function hasSequentialKeyboardKeys(password) {for (let i = 0; i < password.length - 2; i++) {const charIndex = keyboardLayoutIndexes[password[i].toLowerCase()];const nextIndex = keyboardLayoutIndexes[password[i + 1].toLowerCase()];const nextNextIndex = keyboardLayoutIndexes[password[i + 2].toLowerCase()];if (nextIndex === charIndex + 1 && nextNextIndex === nextIndex + 1) {return true;}}return false;}const reasons = [];if (password.length < MIN_PASSWORD_LENGTH) {reasons.push(' 密码长度不足8位');}if (hasSequentialNumbers) {reasons.push(' 包含连续数字');}if (hasRepeatedChars) {reasons.push(' 包含重复字符');}if (hasKeyboardPattern || hasSequentialKeyboardKeys(password)) {reasons.push(' 符合键盘输入规律');}if (!hasSpecialChars) {reasons.push(' 缺少特殊字符');}let strength;if ((charTypes.length <= 2 && password.length >= MIN_PASSWORD_LENGTH) ||reasons.length > 1 ||hasSequentialKeyboardKeys(password)) {strength = 'weak';reasons.unshift(' 密码强度:弱');} else if (charTypes.length === 4 &&!hasKeyboardPattern &&!hasSequentialNumbers &&!hasRepeatedChars &&!hasSequentialKeyboardKeys(password)) {strength = 'strong';reasons.unshift(' 密码强度:强');} else {strength = 'medium';reasons.unshift(' 密码强度:中');}return { strength, reasons };}document.addEventListener('input', function (event) {if (event.target === passwordInput) {const result = checkPasswordStrength(event.target.value);strengthBars.forEach((bar, index) => {if (result.strength === 'weak') {if (index === 0) {bar.classList.remove('hidden');} else {bar.classList.add('hidden');}} else if (result.strength === 'medium') {if (index < 2) {bar.classList.remove('hidden');} else {bar.classList.add('hidden');}} else if (result.strength === 'strong') {bar.classList.remove('hidden');} else {bar.classList.add('hidden');}});if (result.strength === 'empty') {resultText.innerHTML = '';reasonsDiv.innerHTML = '';return;}resultText.className = `${result.strength}-text`;resultText.innerHTML = result.reasons[0];if (result.strength === 'weak' || result.strength === 'medium') {reasonsDiv.innerHTML = `<p>原因:</p><ul>${result.reasons.slice(1).map(r => `<li>${r}</li>`).join('')}</ul>`;} else {reasonsDiv.innerHTML = '';}}});</script>
相关文章:
Jvascript网页设计案例:通过js实现一款密码强度检测,适用于等保测评整改
本文目录 前言功能预览样式特点总结:1. 整体视觉风格2. 密码输入框设计3. 强度指示条4. 结果文本与原因说明 功能特点总结:1. 密码强度检测2. 实时反馈机制3. 详细原因说明4. 视觉提示5. 交互体验优化 密码强度检测逻辑Html代码Javascript代码 前言 能满…...
Macos机器hosts文件便捷修改工具——SwitchHosts
文章目录 SwitchHosts软件下载地址操作添加方案切换方案管理方案快捷键 检测 SwitchHosts SwitchHosts 是一款 Mac 平台上的免费软件,它可以方便地管理和切换 hosts 文件,支持多种 hosts 文件格式。 软件下载地址 SwitchHosts 操作 添加方案 添加 …...
vLLM专题(四)-故障排除
本文件概述了一些您可以考虑的故障排除策略。如果您认为发现了一个 bug,请首先搜索现有的问题,看看是否已经有人报告。如果没有,请提交一个新问题,并尽可能提供相关的详细信息。 注意 一旦您调试完问题,请记得关闭任何已定义的调试环境变量,或者简单地启动一个新 shell,…...
搜广推校招面经十七
滴滴 花小猪 一、算法题1—最小覆盖字串(hot100_字串_困难) 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。 ## form collection import Counter …...
滚动弹幕案例
滚动弹幕案例 一、需求 1.页面上漂浮字体大小不一、颜色不一,从左向右滚动的弹幕; 2.底部中间有一个发送功能,可以发送新的弹幕; 3.底部的发送部分可以向下收起和弹出。 二、html <div class"container"><…...
Typora导出word文件详细安装教程
在 Typora 中,部分文件格式(包括 docx、odt、rtf、epub、LaTeX 和 wiki)的导入和导出功能由第三方软件 Pandoc 提供支持。这些功能需要安装 Pandoc (≥ v2.0)。 一、安装Pandoc 下载地址:通过网盘分享的文件:pandoc 链…...
从短片到长片:王琦携《Mountain》续作迈向新高度
在王琦(Qi Wang)的带领下,广受关注的短片《Mountain》迎来了成长篇续作《Rite of the Mountain》。这一全新长片不仅是她从短片迈向长篇叙事的重要一步,更是一次大胆的艺术挑战。作为制片人的她,将继续以敏锐的视觉风格和深刻的叙事洞察,拓展《Mountain》所触及的情感深度,并构…...
spring boot 对接aws 的S3 服务,实现上传和查询
1.aws S3介绍 AWS S3(Amazon Simple Storage Service)是亚马逊提供的一种对象存储服务,旨在提供可扩展、高可用性和安全的数据存储解决方案。以下是AWS S3的一些主要特点和功能: 1.1. 对象存储 对象存储模型:S3使用…...
考研操作系统-----外存文件
目录 内存映射文件 编辑 文件管理初始: 编辑 文件的逻辑结构 文件目录 编辑 编辑 文件的物理结构(文件分配方式) 文件存储空间管理 文件的基本操作 文件共享 编辑编辑 文件保护: 编辑 文件系统的全局结构…...
国内外网络安全政策动态(2025年1月)
▶︎ 1.国家互联网信息办公室发布《个人信息出境个人信息保护认证办法(征求意见稿)》 1月3日,国家互联网信息办公室发布《个人信息出境个人信息保护认证办法(征求意见稿)》。根据《意见稿》,个人信息出境个…...
跟着 Lua 5.1 官方参考文档学习 Lua (1)
文章目录 1 – Introduction2 – The Language2.1 – Lexical Conventions2.2 – Values and Types2.2.1 – Coercion 1 – Introduction Lua is an extension programming language designed to support general procedural programming with data description facilities. I…...
计算机性能与网络体系结构探讨 —— 基于《计算机网络》谢希仁第八版
(꒪ꇴ꒪ ),Hello我是祐言QAQ我的博客主页:C/C语言,数据结构,Linux基础,ARM开发板,网络编程等领域UP🌍快上🚘,一起学习,让我们成为一个强大的攻城狮࿰…...
matlab欠驱动船舶模型预测控制
1、内容简介 matlab135-欠驱动船舶模型预测控制 可以交流、咨询、答疑 2、内容说明 略 针对在风 、 浪 、 流时变干扰下欠驱动水面船舶的轨迹跟踪控制问题 , 设计了一种基于模型 预测控制的轨迹跟踪控制器 . 考虑到欠驱动船舶在没有横向驱动力情况下…...
【MySQL常见疑难杂症】常见文件及其所存储的信息
1、MySQL配置文件的读取顺序 (非Win)/etc/my.cnf、/etc/mysql/my.cnf、/usr/local/mysql/etc/my.cnf、~/.my.cnf 可以通过命令查看MySQL读取配置文件的顺序 [roothadoop01 ~]# mysql --help |grep /etc/my.cnf /etc/my.cnf /etc/mysql/my.c…...
【LeetCode】3.无重复字符的最长字串
目录 题目算法解法解法一 暴力枚举 哈希表(判断字符是否重复出现) (O( n 2 n^{2} n2))解法二 滑动窗口 哈希表(判断字符是否重复出现) 代码 题目 题目链接:LeetCode-3题 给定一个字符串 s &a…...
李宏毅机器学习笔记:【6.Optimization、Adaptive Learning Rate】
Optimization 1.Adaptive Learning Rate2.不同的参数需要不同的学习率3.Root Mean Square4.RMSProp5.Adam6.learning rate scheduling7.warm up总结 critical point不一定是你在训练一个network时候遇到的最大的障碍。 1.Adaptive Learning Rate 也就是我们要给每个参数不同的…...
计算机组成原理—— 外围设备(十三)
记住,伟大的成就往往诞生于无数次尝试和失败之后。每一次跌倒,都是为了让你学会如何更加坚定地站立;每一次迷茫,都是为了让你找到内心真正的方向。即使前路漫漫,即使困难重重,心中的火焰也不应熄灭。它代表…...
React简介
React简介 A Brief Introduction to React By JacksonML 1. 关于React React是一个知名的Web框架。众所周知,jQuery, Angular, Vue等框架都曾闪亮登场,并且,都仍然在全球市场占有一席之地。React这个颇有担当的新锐,也进入到我…...
Linux-C/C++《七、字符串处理》(字符串输入/输出、C 库中提供的字符串处理函数、正则表达式等)
字符串处理在几乎所有的编程语言中都是一个绕不开的话题,在一些高级语言当中,对字符串的处理支 持度更是完善,譬如 C、 C# 、 Python 等。若在 C 语言中想要对字符串进行相关的处理,譬如将两个字符串进行拼接、字符串查找、两个…...
哈希动态规划dp_5
一.哈希 哈希(Hashing)是计算机科学中一种非常重要的技术,用于将输入的数据映射到固定大小的值(哈希值)上。哈希算法和哈希数据结构广泛应用于各种领域,包括数据查找、加密、缓存、数据库索引等。我们来详…...
电商分布式场景中如何保证数据库与缓存的一致性?实战方案与Java代码详解
文章目录 一、缓存一致性问题的本质写后读不一致:更新数据库后,缓存未及时失效并发读写竞争:多个线程同时修改同一数据缓存与数据库事务不同步:部分成功导致数据错乱 二、5大核心解决方案与代码实现方案1:延迟双删策略…...
DeepSeek-R1 大模型本地部署指南
文章目录 一、系统要求硬件要求软件环境 二、部署流程1. 环境准备2. 模型获取3. 推理代码配置4. 启动推理服务 三、优化方案1. 显存优化技术2. 性能加速方案 四、部署验证健康检查脚本预期输出特征 五、常见问题解决1. CUDA内存不足2. 分词器警告处理3. 多GPU部署 六、安全合规…...
【数据结构】 栈和队列
在计算机科学的世界里,数据结构是构建高效算法的基础。栈(Stack)和队列(Queue)作为两种基本且重要的数据结构,在软件开发、算法设计等众多领域都有着广泛的应用。今天,我们就来深入探讨一下栈和…...
用Python构建Mad Libs经典文字游戏
前言 Mad Libs 是一种经典的文字游戏,其中一名玩家向其他玩家询问各种词汇,如名词、动词、形容词等,而不提供任何上下文。然后将这些提示词插入到一个充满空白的故事模板中,从而创造出一个搞笑或荒谬的故事,供玩家大声朗读以获取乐趣。 自1950年代发明以来,Mad Libs 一…...
ReactiveSwift模拟登录功能
通过使用ReactiveSwift模拟一个简单的登录功能,该功能如下要求: 账号不能为空密码必须大于6位 登录按钮方可点击 LoginViewModel: import ReactiveSwiftclass LoginViewModel {// 创建两个信号let userName MutableProperty<String&g…...
亲测有效!使用Ollama本地部署DeepSeekR1模型,指定目录安装并实现可视化聊天与接口调用
文章目录 一、引言二、准备工作(Ollama 工具介绍与下载)2.1 Ollama介绍2.2 Ollama安装 三、指定目录安装 DeepSeek R1四、Chatbox 可视化聊天搭建4.1 Chatbox下载安装4.2 关联 DeepSeek R1 与 Chatbox 的步骤 五、使用 Ollama 调用 DeepSeek 接口5.1 请求…...
【第11章:生成式AI与创意应用—11.3 AI艺术创作的实现与案例分析:DeepArt、GANBreeder等】
凌晨三点的画室里,数字艺术家小美盯着屏幕上的GANBreeder界面——她将梵高的《星月夜》与显微镜下的癌细胞切片图进行混合,生成的新图像在柏林电子艺术展上引发轰动。这场由算法驱动的艺术革命,正在重写人类对创造力的定义。 一、机器视觉的觉醒之路 1.1 数字艺术的三次浪…...
MySQL的基本使用
MySQL 是一个强大且广泛使用的开源关系型数据库管理系统,适用于各种规模的应用程序。无论是初学者还是经验丰富的开发者,掌握 MySQL 的基本操作都是至关重要的。本文将带你了解 MySQL 的基础概念,并通过实例介绍如何执行一些常见的数据库操作…...
WEB安全--SQL注入--PDO与绕过
一、PDO介绍: 1.1、原理: PDO支持使用预处理语句(Prepared Statements),这可以有效防止SQL注入攻击。预处理语句将SQL语句与数据分开处理,使得用户输入的数据始终作为参数传递给数据库,而不会直…...
微信小程序image组件mode属性详解
今天学习微信小程序开发的image组件,mode属性的属性值不少,一开始有点整不明白。后来从网上下载了一张图片,把每个属性都试验了一番,总算明白了。现总结归纳如下: 1.使用scaleToFill。这是mode的默认值,sc…...
大模型炼丹基础--GPU内存计算
一、摘要 选择合适的GPU对成本和效率都至关重要,合理分析GPU 二、硬件计算基础 1 个字节可以表示零(00000000)和 255(11111111)之间的数字 模型参数常用的数据类型如下: float(32 位浮点&a…...
istio入门篇(一)
一、背景 一直以来“微服务”都是一个热门的词汇,在各种技术文章、大会上,关于微服务的讨论和主题都很多。对于基于 Dubbo、SpringCloud 技术体系的微服务架构,已经相当成熟并被大家所知晓,但伴随着互联网场景的复杂度提升、业务…...
Ubuntu 24.04.1 LTS 本地部署 DeepSeek 私有化知识库
文章目录 前言工具介绍与作用工具的关联与协同工作必要性分析 1、DeepSeek 简介1.1、DeepSeek-R1 硬件要求 2、Linux 环境说明2.1、最小部署(Ollama DeepSeek)2.1.1、扩展(非必须) - Ollama 后台运行、开机自启: 2.2、…...
沃德校园助手系统php+uniapp
一款基于FastAdminThinkPHPUniapp开发的为校园团队提供全套的技术系统及运营的方案(目前仅适配微信小程序),可以更好的帮助你打造自己的线上助手平台。成本低,见效快。各种场景都可以自主选择服务。 更新日志 V1.2.1小程序需要更…...
Visual Studio Code使用ai大模型编成
1、在Visual Studio Code搜索安装roo code 2、去https://openrouter.ai/settings/keys官网申请个免费的配置使用...
工业软件测试方案
一、方案概述 本测试方案致力于全面、系统地评估工业仿真软件的综合性能,涵盖性能表现、功能完整性以及用户体验层面的易用性。同时,将其与行业内广泛应用的MATLAB进行深入的对比分析,旨在为用户提供极具价值的参考依据,助力其在…...
红队视角出发的k8s敏感信息收集——Kubernetes API 扩展与未授权访问
针对 Kubernetes API 扩展与未授权访问 的详细攻击视角分析,聚焦 Custom Resource Definitions (CRD) 和 Aggregated API Servers 的潜在攻击面及利用方法: 攻击链示例 1. 攻击者通过 ServiceAccount Token 访问集群 → 2. 枚举 CRD 发现数据库配…...
一种 SQL Server 数据库恢复方案:解密、恢复并导出 MDF/NDF/BAK文件
方案特色 本方案可以轻松恢复和导出SQL数据库:MDF、NDF 和 BAK 文件。 恢复和导出SQL数据库:主(MDF),辅助(NDF)和备份(BAK)文件分析 SQL Server LOG 数据库事务日志将 …...
Pygame中自定义事件处理的方法2-1
1 Pygame事件处理流程 Pygame中的事件处理流程如图1所示。 图1 Pygame中事件处理流程 系统事件包括鼠标事件和键盘事件等,当用户点击了鼠标或者键盘时,这些事件会自动被放入系统的事件队列中。用户自定义事件需要通过代码才能被放入事件队列中。Pygame…...
langchain学习笔记之消息存储在内存中的实现方法
langchain学习笔记之消息存储在内存中的实现方法 引言背景消息存储在内存的实现方法消息完整存储:完整代码 引言 本节将介绍 langchain \text{langchain} langchain将历史消息存储在内存中的实现方法。 背景 在与大模型交互过程中,经常出现消息管理方…...
HarmonyOS组件之Tabs
Tabs 1.1概念 Tabs 视图切换容器,通过相适应的页签进行视图页面的切换的容器组件每一个页签对应一个内容视图Tabs拥有一种唯一的子集元素TabContent 1.2子组件 不支持自定义组件为子组件,仅可包含子组件TabContent,以及渲染控制类型 if/e…...
【C++】基础入门(详解)
🌟 Hello,我是egoist2023! 🌍 种一棵树最好是十年前,其次是现在! 目录 输入&输出 缺省参数(默认参数) 函数重载 引用 概念及定义 特性及使用 const引用 与指针的关系 内联inline和nullptr in…...
bps是什么意思
本文来自DeepSeek "bps" 是 "bits per second" 的缩写,表示每秒传输的比特数,用于衡量数据传输速率。1 bps 即每秒传输 1 比特。 常见单位 bps:比特每秒 Kbps:千比特每秒(1 Kbps 1,000 bps&am…...
OceanBase使用ob-loader-dumper导出表报ORA-00600
执行下面的语句导出表报错,同样的语句之前都没有报错。 ob-loader-dumper-4.2.8-RELEASE/bin/obdumper -h xxx.xxx.xxx.xxx -P 2883 -p 密码 --column-splitter| --no-sys-t gzuat_ss#ob8(集群) -D 数据库名 --cut --table teacher --no-ne…...
JUC并发总结一
大纲 1.Java集合包源码 2.Thread源码分析 3.volatile关键字的原理 4.Java内存模型JMM 5.JMM如何处理并发中的原子性可见性有序性 6.volatile如何保证可见性 7.volatile的原理(Lock前缀指令 + 内存屏障) 8.双重检查单例模式的volatile优化 9.synchronized关键字的原理 …...
hive:分区>>静态分区,动态分区,混合分区
分区表 使用场景:数据量庞大且经常用来做查询的表 特点:将数据分别存储到不同的目录里 优点:避免全盘扫描,提高查询效率 分区的类型 它们的默认值分别是: false, strict, 要求至少有一个静态分区列,而 nonstr…...
深入解析PID控制算法:从理论到实践的完整指南
前言 大家好,今天我们介绍一下经典控制理论中的PID控制算法,并着重讲解该算法的编码实现,为实现后续的倒立摆样例内容做准备。 众所周知,掌握了 PID ,就相当于进入了控制工程的大门,也能为更高阶的控制理论…...
linux--关于GCC、动态库静态库
gcc和g的异同 他们是不同的编译器, 在linux中,生成可执行文件不像和windows一样。 linux中是以**.out作为可执行文件**的 无论是什么系统,生成可执行文件分为4步: 预处理–>编译–>汇编–>链接。 从.c/.cpp–>.i文件…...
matlab汽车动力学半车垂向振动模型
1、内容简介 matlab141-半车垂向振动模型 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略...
Pygame中自定义事件处理的方法2-2
在《Pygame中自定义事件处理的方法2-1》中提到了处理自定义事件的方法。通过处理自定义事件,可以实现动画等效果。 1 弹跳小球程序 通过处理自定义事件,可以实现弹跳小球程序,如图1所示。 图1 弹跳小球程序 2 弹跳小球程序原理 实现弹跳小…...