身份认证与口令攻击

身份认证与口令攻击

  • 身份认证
    • 身份认证的五种方式
    • 口令认证
      • 静态口令
      • 动态口令(一次性口令)
      • 动态口令分类
    • 密码学认证
      • 一次性口令认证
      • S/KEY协议
      • 改进的S/KEY协议
    • 其于共享密钥的认证
  • 口令行为规律和口令猜测
    • 口令规律
    • 口令猜测
  • 口令破解
    • 操作系统口令破解
      • Windows密码存储机制
      • Windows密码破解方法
    • Unix/Linux系统口令文件
    • Unix的口令文件
    • Unix口令破解程序
      • Crack
      • John the Ripper
      • XIT
      • Slurpie
    • 密码哈希值破解
    • 网络应用口令破解
    • 远程口令攻击
    • 跨域拓展攻击
  • 口令防御

身份认证

  • 系统安全性常常依赖于对终端用户身份的正确识别与检查。
  • 最基本的安全问题:对计算机系统的访问必须根据访问者的身份施加一定的限制。
  • 身份认证有两方面的内容:识别和验证
    • 识别:要明确访问者身份,即必须对系统中的每个合法用户都有识别能力
    • 要保证识别的有效性,必须保证任意两个不同的用户都不能具有相同的识别符
    • 验证:在访问者声称自己的身份后(向系统输入它的识别符),系统还必须对它所声称的身份进行验证,以防假冒。

  • 个人身份验证方法的四种类型
    • 所知:验证他知道什么,如密码、口令
    • 所有:验证他拥有什么,如身份证、护照、信用卡、智能门卡
    • 所在:验证他的位置,如IP、办公室地址
    • 用户特征:验证他的生物特征(如指纹、虹膜、DNA等)、行为特征(如击键、笔迹)

身份认证的五种方式

  1. 口令认证
  2. 信物认证
  3. 地址认证
  4. 用户特征认证
  5. 密码学认证

  • 口令的“魔咒”:可记忆、抗猜测
    • “可记忆”要求口令尽量短、有规律、不复杂
    • “抗猜测”要求口令尽量长、无规律、越复杂越好
  • 没有一种认证方案可实现“文本”口令方案的所有优点。

口令认证

  • 口令认证的不可替代性:口令认证仍将是最主要的认证方式
成本低廉可用性可再生性
口令
硬件token
生物特征

静态口令

  • 用户在注册阶段生成用户名和初始口令,系统在其用户文件或数据库中保存用户的信息。
  • 当用户登录认证时,将自己的用户名和口令上传给服务器,服务器通过查询其保存的用户信息来验证用户上传的认证信息是否和保存的用户信息相匹配。如果匹配则认为用户是合法用户,否则拒绝服务,并将认证结果回传给客户端。
  • 用户定期改变口令,保证安全性。静态口令因实现简单、使用方便,得到广泛的应用。

动态口令(一次性口令)

  • 基本原理:在用户登录过程中,基于用户口令加入不确定因子,对用户口令和不确定因子进行单向散列函数变换,将结果作为认证数据提交给认证服务器。认证服务器接收到用户的认证数据后,把用户的认证数据和自己用同样的散列算法计算出的数值进行比对,从而实现对用户身份的认证。

动态口令分类

  • 动态口令按生成原理可分为非同步和同步两种认证技术
  • 非同步认证技术生成的动态口令主要是依据挑战-响应原理来实现。
    • 挑战—响应机制
      在这里插入图片描述
  • 同步认证技术包括与时间有关的时钟同步认证技术和与时间无关的事件同步认证技术。

  • 图形口令:图形密码是一种基于知识的认证机制,它利用人类对视觉信息的记忆与共享的秘密或组成的图像或草图,以提高密码的可记忆性,同时保留传统密码的安全性。

密码学认证

  • 常用的密码学认证协议有一次性口令认证、基于共享密钥的认证、基于公钥证书的认证、零知识证明和标识认证等。

一次性口令认证

  • 一次性口令(One-Time Password, OTP):一般使用双运算因子来实现
    • 固定因子:即用户的口令或口令散列值
    • 动态因子:每次不一样的因子,如时间,事件序列,挑战/应答
  • 挑战—响应机制
    在这里插入图片描述

S/KEY协议

  • 一次性口令认证协议S/KEY
    在这里插入图片描述
  • S/KEY中,服务器产生挑战(challenge)信息。挑战信息由迭代值(Iteration Count, IC)和种子(seed)组成。
  • 迭代值,指定散列计算的迭代次数,为1~100之间的数,每执行一次挑战/响应过程,IC减1(当IC为1时,则必须
    重新进行初始化)。种子由两个字母和5个数字组成。例如,挑战信息“05 xa13783”表示迭代值为05,种子为“xa13783”。客户端收到挑战后,要将秘密口令与种子“xa13783”拼接后,做5次散列运算。

  • S/KEY中支持三种散列函数,即MD4, MD5和SHA。OTP服务器将散列函数的固定输出折叠成64位(OTP的长度)。64位OTP可以被转换为一个由6个英文单词组成的短语,每个单词由1~4个字母组成,被编码成11位,6个单词共66位,其中最后2位( 11 × 6 − 64 = 2 11\times 6 - 64 = 2 11×664=2)用于存储校验和。

  • 安全性分析
  1. 用户的秘密口令没有在网络上传输,传输的只是一次性口令,并且一次性口令即使在传输过程中被窃取,也不能再次使用。
  2. 客户端和服务器存储的是用户秘密口令的散列值,即使客户端和服务器被攻陷导致口令散列值被窃取,也需破解口令散列才能获得明文口令。
  3. 用户登录一定次数后,客户和服务器必须重新初始化口令序列
  4. 为了防止重放攻击,系统认证服务器具有唯一性,不适合分布式认证
  5. 单向认证(即服务器对客户端进行认证),不能保证认证服务器的真实性
  6. S/KEY使用的种子和迭代值采用明文传输,攻击者可以利用小数攻击来获取一系列口令冒充合法用户。

改进的S/KEY协议

  • 核心思想:不在网络中传输一次性口令散列值。使用用户的口令散列对挑战进行散列,并将计算结果发送给服务器。服务器收到后,同样使用服务器保存的用户口令散列对挑战进行散列计算,并与客户端发来的应答进行比较,如果相同则认证通过,否则拒绝。
    在这里插入图片描述
  • 安全性分析
  1. 用户很容易求出正确的一次性口令,采用一次性口令的匹配通过服务器的身份认证
  2. 攻击者即使截获一次性口令,也不能破解出用户口令散列
  3. 攻击者不能预测下一次一次性口令,也不能重放成功。
  4. 能够避免监听和重放,但不能防范拦截和修改数据包、会话劫持等攻击
  5. 没有完整性保护机制,无法防范内部攻击
  6. 不能对服务器的身份进行认证

其于共享密钥的认证

  • Needham-Schroeder双向鉴别协议
    在这里插入图片描述
  • 问题:执行完上述三个步骤后,A和B已得到了由KDC分配的一次性会话密钥,可用于后续的保密通信,为什么还要增加后面两个步骤?
  • 为了进一步保护通信的完整性和认证性。第四个步骤是为确保A和B能够相互认证对方的身份。在这个步骤中,B向A发送一个随机数N2,并用会话密钥Ks对N2进行加密。通过将加密后的N2发送给A,B证明了自己拥有会话密钥Ks,并且A能够验证B的身份。**第五个步骤是为了确保通信的完整性。**在这个步骤中,A使用会话密钥Ks对N2进行加密,并将结果发送给B。B解密接收到的信息,并验证解密后的结果与之前发送的N2是否匹配,从而确认通信的完整性。

口令行为规律和口令猜测

口令规律

  • 3类脆弱口令行为:口令构造的偏好性选择、口令重用、基于个人信息构造口令
    • 口令构造的偏好性选择:国民口令,中文国民口令多为纯数字,而英文国民口令多含有字母例如:5201314、woaini1314、iloveyou;口令字符构成
    • 口令重用:在不同网站重复使用同一个密码,同时在密码中嵌入个人相关信息,如姓名和生日。用户的口令重用是不安全的,所以应当避免。只有跨不同安全级(或重要程度)的账户重用口令,才应努力避免的
    • 基于个人信息构造口令:用户在构造时喜欢使用姓名、生日、身份证号。

口令猜测

  • 根据口令破解过程中是否需要连网,口令猜测算法分为在线破解(Online Guessing)和离线破解(Offline Guessing)。
  • 根据攻击过程中是否利用用户个人信息,口令猜测算法可以分为漫步攻击(TrawlingAttacking)和定向攻击(Targeted Attacking)

  • 漫步攻击:不关心攻击对象的信息,而只关注在允许的猜测次数内,猜测出更多的口令。
  • 主流的2种漫步攻击算法:基于PCFG的算法和Markov算法。
  • 算法的核心假设是:用户构造口令从前向后依次进行。因此,算法对整个口令进行训练,通过从左到右的字符之间的联系来计算口令的概率。

  • 定向攻击:尽可能以最快速度猜测出所给定目标(如网站)的口令。因此,攻击者会利用与攻击对象相关的个人信息(人口学相关信息),增强猜测的针对性。用户在其他网站或系统中泄露的口令也可以被攻击者利用来进行定向攻击。
  • 基于Markov链的定向攻击猜测算法的基本思想是:人群中有多少比例使用某种个人信息,那么攻击对象也有同样可能使用该个人信息。将个人信息分为6大类:用户名A、邮箱前缀E、姓名N、生日B、手机号P和身份证G。
  • 定向攻击:基于概率上下文无关文法(PCFG)的定向攻击猜测算法Personal-PCFG。基本思想与PCFG攻击模型完全相同:将口令按字符类型按长度进行切分。同Targeted-Markov算法一样,将个人信息也分为6大类

口令破解

操作系统口令破解

Windows密码存储机制

  • Windows密码:安全策略
  • Windows中的**本地安全授权子系统(LSASS,Local Security Authority Subsystem Service)负责有关安全方面的功能。该子系统将用户登录过程中输入的用户名和密码信息发送给安全帐号管理器(SAM,Security Account Manage)**决定登录尝试是否合法。
  • SAM中的SAM数据库(SAM文件)记录每一个用户帐号的密码记录。SAM文件中每个用户帐号有两条密码记录:LM密码表示和NT哈希表示。
  • SAM数据库在磁盘上保存在%systemroot%system32\config\目录下的sam文件中,登陆Windows系统后SAM是
    被锁死的,如果选择打开SAM文件会显示被另一个程序使用,无法打开,即使打开也显示空白。
    在这里插入图片描述
  • SAM文件中每个用户帐号有两条密码记录:LM密码表示和NT哈希表示。Windows 7以后,默认不包含LM密码表示在这里插入图片描述

Windows密码破解方法

  1. 提取SAM文件进行破解:用DOS启动盘启动计算机,把SAM文件拷贝出来,用软件进行分析破解,得到系统口令。
  2. 用备份的SAM文件替换当前SAM文件:攻击者用DOS启动盘启动后,还可以用%SystemRoot%\repair\asm覆盖%SystemRoot%\system32\config\sam,这样系统管理员Administrator的密码就恢复成安装操作系统时的密码,而大部分人在安装操作系统时都将初始密码设置为空或者很简单。
  3. 使用口令修改软件:在不登陆系统的情况下修改系统密码,如Passware Kit Enterprise这款软件可以自动把administrator密码修改为12345。
  4. 系统口令破解软件:
    • Cain:集合多种攻击工具的软件。
    • PWDUMP4:主要用于获取本地或远端Windows系统的SAM文件,配合LC5等破解软件使用
    • John the Ripper:是Unix/Linux平台上最好的密码破解软件之一。

Unix/Linux系统口令文件

  • Unix/Linux系统使用/etc/passwd文件创建和管理账户。
    • 文件存储信息的结构
    alice:$1$sumys0Ch$ao01LX5MF6U:502:502:alice
    |账号|--------密码-----------|UID|默认UID|登录目录
    
  • 系统中任何用户和进程都可以读取/etc/passwd文件,安全性不高。
  • 现在的系统把账户信息和口令密文分开存放,/etc/passwd文件用于保存账户信息,加密后过的密码保存在/etc/shadow/etc/secure影子口令文件中,只有root用户能够读取。

Unix的口令文件

  • UNIX系统用户的口令,本来是经过加密后保存在一个文本文件passwd中的,一般存放在/etc目录下,后来由于安全的需要,把passwd文件中与用户口令相关的域提取出来,组织成文件shadow,并规定只有超级用户才能读取。这种分离工作也称为shadow变换。因此,在破解口令时,需要做UnShadow变换,将/etc/passwd与/etc/shadow合并起来。在此基础上才开始进行口令的破解。
  • /etc/shadow文件包含用户的加密后口令相关的信息。每个用户一条记录。格式如下:
username:passwd:lastchg:min:max:warn:inactive:expire:flag
字段描述
username登录名
passwd经过加密后的口令
lastchg上次更改口令距今的天数
min两次修改口令之间最少经过的天数
max口令的有效期限
warn口令失效前的警告天数
inactive禁止登录前用户仍然有效的天数
expire禁止登录的天数
flag未使用

Unix口令破解程序

Crack

  • Crack:旨在快速定位UNIX口令弱点的口令破解程序,使用标准的猜测技术确定口令。通过生成口令进行加密去匹配原口令密码,或直接从网上截获明文口令。
  • Crack 程序中包含了几个很大的字典库,进行解破时它会按照一定的规则将字词进行组合,然后对之进行加密,再与要解破的加密口令匹配。所以运行Crack通常要占用大量的CPU,并要运行相当长的时间才结束

John the Ripper

  • John The Ripper这个软件是由著名的黑客组织UCF编写的,它支持UNIX、DOS、Windows。
  • John The Ripper有四种破解模式:
    • “字典文件”破解模式(Worldlist Mode)
    • “简单”破解模式(Single Crack)
    • “增强”破解模式(Incremental Mode)
    • “外挂模块”破解模式(External Mode)

XIT

  • XIT是一个执行词典攻击的UNIX口令破解程序。XIT的功能有限,因为它只能运行词典攻击,但程序很小、运行很快。

Slurpie

  • Slurpie能执行词典攻击和定制的强行攻击,要规定所需要使用的字符数目和字符类型。

密码哈希值破解

  • http://www.cmd5.com/:一个MD5和SHA1散列值在线破解的网站,拥有全世界最大的数据库,完全收录1-6位大小写字母+数字+特殊字符、7位小写字母+数字、8位小写字母和8-11位数字,部分收录了8位小写字母+数字,网站平均破解成功率高达95%。
  • MD5Crack是一个离线的MD5密码暴力破解软件,具有破解速度快,支持批量破解,保存进度和多线程的特点。

网络应用口令破解

  • 通过登录攻击来猜测口令,即通过网络运行一个工具周期性地尝试登录目标系统。
  • 推荐工具:
    • Brutus:免费软件(www.hoobie.net/brutus),运行于Windows平台,支持的协议有基本HTTP认证、带HTML表单的HTTP认证、POP3、FTP、SMB及Telnet
    • Hydra:免费软件(http://thc.org/thc-hydra),运行于Linux/Unix平台。

远程口令攻击

  • 远程口令攻击主要是指网络服务口令攻击,是一种远程在线攻击。破解效率很低,而且容易被记录。
  • 特点:可以远程进行穷举字典的方式来猜解口令;破解效率很低,而且容易被记录。
  • 攻击过程大致如下:
    1. 建立与目标网络服务的网络连接。
    2. 选取一个用户列表文件和一个字典文件。
    3. 在用户列表文件和一个字典文件中,选取一组用户和口令,按照网络服务协议规定,将用户名和口令发给目标网络服务端口。
    4. 检测远程服务返回信息,确定口令尝试是否成功。
    5. 循环2到4步,直到口令破解成功为止

跨域拓展攻击

  • 脱库(Database Breach):指攻击者通过某种方式获取并下载整个数据库或其中的敏感数据。这通常涉及通过漏洞、恶意软件或其他非授权手段入侵数据库服务器,并提取其中的数据。

常见方式

  1. SQL注入:攻击者利用输入验证缺陷,通过SQL注入攻击获取数据库访问权限。
  2. 未授权访问:通过弱密码、默认账号或未修补的漏洞,攻击者能够直接访问数据库。
  3. 内部威胁:公司内部人员利用其权限,非法下载和复制敏感数据。

风险

  • 数据泄露:敏感信息(如用户密码、财务数据、个人信息)被暴露。
  • 财务损失:被盗数据可能被用于欺诈或勒索。
  • 声誉损害:数据泄露事件可能严重影响公司的声誉和客户信任。

  • 洗库(Data Cleaning or Scrubbing):指对已经获取的数据库进行处理和清洗,以便去除不需要的数据、重复的数据或错误的数据。对于攻击者而言,洗库是为了提取有用的、可利用的数据。

常见方式

  1. 数据清洗:使用脚本或工具排除重复数据、无效数据以及错误数据,确保数据的质量。
  2. 数据规范化:对数据进行格式统一和标准化处理,使其更容易被利用。

风险

  • 攻击者可以更有效地利用清洗后的数据进行进一步攻击,如撞库攻击或社会工程学攻击。

  • 撞库(Credential Stuffing):一种利用已泄露的用户名和密码组合,尝试登录其他网站或服务的攻击手段。攻击者假设用户在多个网站上使用相同的用户名和密码。

常见方式

  1. 自动化脚本:使用自动化脚本或工具,批量尝试登录目标网站。
  2. 已泄露凭证:利用在之前数据泄露事件中获得的用户名和密码组合进行尝试。

风险

  • 未授权访问:攻击者可能获得对其他服务的未授权访问,进一步窃取或滥用信息。
  • 账户劫持:合法用户账户被攻击者控制,可能导致资金或数据的损失。
  • 大规模攻击:通过撞库攻击,攻击者能迅速尝试大量账号组合,造成广泛影响。

在这里插入图片描述

口令防御

  1. 强壮的密码策略
  • 推荐使用密码短语设置长密码。例如“Lee, Ithink I’ll buy another copy of Counter Hack”要比密码“#dx92!$X”难破解得多!
  • 密码要符合复杂性要求:
    • 指定密码最短长度:至少为9个字符
    • 禁止使用字典词汇,应该包含非字母字符
    • 少用个信信息

  1. 用户意识
  • 不要在不同系统上使用同一口令
  • 不要选取显而易见的信息作口令
  • 尽量不要在同一台机器上分配多个用户权限,一旦某个用户具有登录权限,那么他就可能获取该计算机的SAM信息并分析出所有用户的密码。

  1. 密码过滤软件:为确保用户没有选择弱密码,使用密码过滤工具来规范用户使用强壮的密码。

  1. 保护密码文件:在支持密码shadow的系统中,确保激活密码shadow。(密码shadow用来在/etc/shadow文件中存储密码表示,仅可以让root读取)

  1. 分组分类:将重要的账户进行重点保护,那些不怎么重要的账号就可以用简单的密码设置,同类账户可以密码重用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/337308.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构-堆排序问题

需要在数组里面进行排序,我们可以采取堆排序对其解决问题 版本1: 创建一个数组等大的堆,把数组里面的数值输入到堆里面进行堆排序,但是这样的弊端就是,不是顺序排序 版本2: 每次我们取堆顶然后打印&#xf…

举个栗子!Tableau 技巧(275):散点图的数值重合怎么办?抖动图来咯

散点图是大家经常使用的分析图表,但是如果出现多个数据点具有完全相同的 X 和 Y 值,多个散点重叠并隐藏后,查看数据就很不方便了。 遇到这种情况,该怎么办?其实可以尝试将数据点稍微抖动一下!如下图&#…

MT3045 松鼠接松果

思路: 求x的一个区间,使区间中的松果的最大y坐标和最小y坐标的差至少为D。若有多个区间,则取最小的那个。 即使用单调队列不断维护最大值和最小值。 首先L固定不动,R不断右移: 即若函数f(R)max[L,R]-min[L,R] >…

探秘Flask中的表单数据处理

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言 二、Flask中的表单处理机制 三、Flask表单处理实战 四、处理表单数据的注意事项…

万字解析线控底盘技术

文章出处:汽车学堂Automooc 引言 在当今这个由科技驱动的时代,汽车电动化、智能化已成为汽车行业的热门话题。特斯拉的自动驾驶功能、蔚来的换电模式、以及比亚迪的刀片电池技术,这些创新不仅引领着市场趋势,也推动着消费者对智…

Java常用API(三)

一、Arrays类 1.定义 Arrays是一个用于操作数组的工具类。 2.常用方法 1.toString方法 public class Demo {public static void main(String[] args) {//toString 将数组变成字符串int[] arr {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};System.out.println(Arrays.toString(arr));…

DNS 解析过程

文章目录 简介特点查询方式⚡️1. 浏览器缓存2. 系统缓存(hosts文件)3. 路由器缓存4. 本地域名服务器5. 根域名服务器6. 顶级域名服务器7. 权限域名服务器8. 本地域名服务器缓存并返回9. 操作系统缓存并返回10. 浏览器缓存并访问流程图 总结 简介 DNS&a…

springboot2+mybatis-plus+vue3创建入门小项目[学生管理系统]02[实战篇]

01学习篇 创建一个 vue 项目 创建这个新的文件夹 创建前端项目 eggbox 数据库 SQL CREATE DATABASE IF NOT EXISTS egg DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; USE egg;CREATE TABLE stu (id INT AUTO_INCREMENT, -- 自增主键name VARCHAR(64) NOT NULL, -- 非空…

如何使用前端表格控件实现多数据源整合?

前言 作为表格产品的典型应用场景之一,几乎所有的行业都会存在类 Excel 报表开发这样的应用场景,而在这些应用场景中,经常会遇见下面的这些痛点: 报表数据往往来自多个不同的数据源,需要报表系统能够同时连接多个数据源…

反VC情绪:加密市场需要新的分布式代币发行方式

GME事件 GME事件反应了社交媒体在金融决策中的影响力,散户投资者群体通过集体行动,改变了很多人对股市的看法和参与方式。 GME事件中,meme扮演了核心角色。散户投资者使用各种meme来沟通策略、激励持股行为,创造了一种反对华尔街…

5. MySQL运算符和函数

文章目录 【 1. 算术运算符 】【 2. 逻辑运算符 】2.1 逻辑非 (NOT 或者 !)2.2 逻辑与运算符 (AND 或者 &&)2.3 逻辑或 (OR 或者 ||)2.4 异或运算 (XOR) 【 3. 比较运算符 】3.1 等于 3.2 安全等于运算符 <>3.3 不等于运算符 (<> 或者 !)3.4 小于等于运算符…

AdroitFisherman模块安装日志(2024/5/31)

安装指令 pip install AdroitFisherman-0.0.29.tar.gz -v 安装条件 1:Microsoft Visual Studio Build Tools 2:python 3.10.x 显示输出 Using pip 24.0 from C:\Users\12952\AppData\Local\Programs\Python\Python310\lib\site-packages\pip (python 3.10) Processing c:\u…

QT加载CAD文件(二)LibreCAD源码编译

一、LibreCAD LibreCAD是一个开源软件&#xff0c;不用破解激活&#xff0c;可以打开编辑DXF格式的文档&#xff0c;软件大小只有二十多M&#xff0c;对于一些比较简单的图纸还是可以胜任的。本文主要讲该软件源码编译。如果了解软件的基本使用可以参考https://blog.csdn.net/…

参数高效微调PEFT(一)快速入门BitFit、Prompt Tuning、Prefix Tuning

参数高效微调PEFT(一)快速入门BitFit、Prompt Tuning、Prefix Tuning 目前&#xff0c;模型最全的网站是HuggingFace&#xff0c;但是国内需要魔法流量才能访问。另外&#xff0c;现在大模型权重文件都较大&#xff0c;也会浪费不少流量&#xff0c;因此这里推荐使用魔搭社区下…

一文学懂Base64编码原理

前言 Base64编码与ASCII编码一样&#xff0c;也是一种编码方式。不同的是ASCII码采用7位二进制数表示&#xff08;包括大小写字母、数字、标点符号和一些不可见字符&#xff09;&#xff0c;而Base64采用6位二进制数表示&#xff08;包括大小写字母、0~9数字、和/&#xff09;…

Java | Leetcode Java题解之第120题三角形最小路径和

题目&#xff1a; 题解&#xff1a; class Solution {public int minimumTotal(List<List<Integer>> triangle) {int n triangle.size();int[] f new int[n];f[0] triangle.get(0).get(0);for (int i 1; i < n; i) {f[i] f[i - 1] triangle.get(i).get(i…

如何修改开源项目中发现的bug?

如何修改开源项目中发现的bug&#xff1f; 目录 如何修改开源项目中发现的bug&#xff1f;第一步&#xff1a;找到开源项目并建立分支第二步&#xff1a;克隆分支到本地仓库第三步&#xff1a;在本地对项目进行修改第四步&#xff1a;依次使用命令行进行操作注意&#xff1a;Gi…

闽盾杯 2021 DNS协议分析

今年CISCN的Tough DNS 的前戏就是DNS协议分析 直接可以查找到flag的base64形式Zmxh 发现就是请求的dnslog 携带的数据 过滤器就是 dns tshark -r dns.pcapng -T json -Y "dns" >1.json 字段选择 dns.qry.name tshark -r dns.pcapng -T json -Y "dns"…

Linux 编译安装python

以deepin操作系统安装Python3.8.10为例。 下载 python3.8.10 官网下载 Linux要下载源码&#xff0c;进行编译。 下图tarball即tar包&#xff0c;是压缩包的意思。python官网给出两种压缩格式的tarball&#xff0c;下载哪个都可以。 方式一&#xff1a;直接点击链接下载 方式…

如何评价GPT-4o?GPT-4o和ChatGPT4.0的区别是啥呢?

如何评价GPT-4o? GPT-4o代表了人工智能领域的一个重要里程碑&#xff0c;它不仅继承了GPT-4的强大智能&#xff0c;还在多模态交互方面取得了显著进步。以下是几个方面的分析&#xff1a; 技术特点 多模态交互能力&#xff1a;GPT-4o支持文本、音频和图像的任意组合输入与输出…