Windows及Linux系统加固

君衍.

  • 一、Windows加固
    • 1、配置简介
    • 2、账户配置
    • 3、本地配置
    • 4、安全设置
  • 二、Linux加固
    • 1、配置简介
    • 2、网络配置
    • 3、日志和审计配置
    • 4、访问认证和授权配置
    • 5、系统运维配置

一、Windows加固

1、配置简介

  • 通常在Windows安全配置中有两类对象

    • 一类是Windows Server,如win server 2012 、win server 2016、win server 2019
    • 一类是Windows Client,如win 7、 win 8 、win 10
  • Windows安全配置中,如果组织有条件,对Windows Client的安全配置我们可以借助微软的活动目录来实现自动化。

  • 而对Windows Server 通常为保障服务器稳定运行,我们倾向于的是手动配置。

  • Windows Server 2012 R2为例,进行加固讲解

Windows安全配置方法

  • 通常我们使用组策略对windows进行安全配置
  • 组策略中的安全配置与注册表也可以对应,但注册表可读性较差。组策略 有详细的说明,所以我们通常使用组策略
  • 在windows客户端系统中,HOME版本是没有组策略的的功能。
  • 打开组策略的方法是
右键开始-->运行-->gpedit.msc
WIN+R -->gpedit.msc

在这里插入图片描述
Windows 不论什么版本,进行安全配置均包含以下两个常用维度

  • 账户策略
  • 密码策略
  • 账户锁定策略
  • 本地策略
  • 审计策略
  • 用户权限策略
  • 安全选项

除了上述常用的配置,还会包含以下两个维度

  • 防火墙策略
  • 域配置文件
  • 私有网络配置文件
  • 高级审计策略
  • 账户登录
  • 账户管理
  • 详细跟踪
  • 登录/注销
  • 对象访问
  • 策略更改

2、账户配置

密码策略

  • 强制密码历史,建议设置为24个
  • 密码最长使用期限,建议设置60天
  • 密码最短使用期限,建议设置为1天或更多
  • 密码长度最小值,建议设置为14
  • 密码必需符合复杂性要求,建议设置为启用
  • 用可还原的加密码来存储密码,建议设置为禁用

在这里插入图片描述
账户锁定策略

  • 账户锁定阈值,建议设置为10次或更少
  • 账户锁定时间,建议设置为15分钟或更多
  • 重置账户锁定计数器,建议设置为15分钟或更多

在这里插入图片描述

3、本地配置

用户权限分配

  • 作为受信任的呼叫方访问凭据管理器,建议设置为空。默认为空
  • 从网络访问此计算机,建议设置为Administrator,Authenticated Users,ENTERPRISE DOMAIN CONTROLLERS(域控设置)
  • 以操作系统方式执行,建议设置为空,默认为空
  • 将工作站添加到域,建议设置为Administrators
  • 为进程调整内存配额,建议设置为Administrators, LOCAL SERVICE, NETWORK SERVICE
  • 允许本地登录,建议设置为Administrators
  • 允许通过远程桌面服务登录,建议设置为Administrators, Remote Desktop Users(客户端设置)
  • 备份文件和目录,建议设置为Administrators
  • 更改系统时间,建议设置为Administrators, LOCAL SERVICE
  • 更改时区,建议设置为Administrators, LOCAL SERVICE
  • 创建页面文件,建议设置为Administrators
  • 创建一个信息对象,建议设置为空
  • 创建全局对象,建议设置为Administrators, LOCAL SERVICE, NETWORK SERVICE,SERVICE
  • 创建永久共享对象,建议设置为空
  • 创建符号链接,建议设置为Administrators
  • 调试程序,建议设置为Administrators
  • 拒绝从网络访问这台计算机,建议设置为Guests, 本地的administrators中的其它用户或组。
  • 拒绝作为批处理作业登录,建议设置为Guest
  • 拒绝以服务身份登录,建议设置为Guest
  • 拒绝本地登录,建议设置为Guest
  • 拒绝通过远程桌面服务登录,建议设置为Guest和需要的本地用户
  • 信任计算机和用户账户可以执行委派,建议设置为空,域控设置为Administrators
  • 从远程系统强制关机,建议设置为Administrators
  • 生成安全审核,建议设置为LOCAL SERVICE, NETWORK SERVICE
  • 身份验证后模拟客户端,建议设置为Administrators, LOCAL SERVICE, NETWORK SERVICE, SERVICE
  • 提高计划优先级,建议设置为Administrators
  • 加载和卸载设备驱动程序,建议设置为Administrators
  • 锁定内存页,建议设置为空
  • 管理审核和安全日志,建议设置为Administrators,默认符合
  • 修改固件环境值,建议设置为Administrators,默认符合
  • 执行卷维护任务,建议设置为Administrators,默认符合
  • 配置文件单一进程,建议设置为Administrators,默认符合
  • 还原文件和目录,建议设置为Administrators
  • 关闭系统,建议设置为Administrators
  • 取得文件或其他对象所有权,建议设置为Administrators,默认设置

4、安全设置

1、账户

  • 账户:管理员账户状态,建议设置为禁用
  • 账户:阻止Microsoft账户,建议设置为用户不能添加Microsoft账户或使用 该账户登录
  • 账户:来宾账户状态,建议设置为已禁用,默认设置
  • 账户:使用空密码的本地账户只通话进行控制台登录,建议设置为启用,默认 设置
  • 账户:重命令系统管理员账户,建议重命名为非administrator
  • 账户:重命名来宾账户,建议重命名为非Guest

在这里插入图片描述
2、审核

  • 审核:如果无法记录安全审计则立即关闭系统,建议设置为禁用,默认设置
  • 审核:强制审核策略子类别设置,建议设置为启用

在这里插入图片描述
3、设备

  • 设备:允许对可移动媒体进行格式化并弹出,建议设置为Administrators
  • 设备:防止用户安装打印机驱动程序,建议设置为已启用,默认设置

在这里插入图片描述
4、交互式登录

  • 交互式登录:不显示最后的用户名,建议设置已启用
  • 交互式登录:无须按Ctrl+Alt+Del,建议设置已禁用,默认设置
  • 交互式登录:计算机不活动限制,建议设置为900,不要设成0。可以理解为 锁屏。
  • 交互式登录:试图登录的用户的消息文本,不要表现出任何信息,可以为空
  • 交互式登录:试图登录的用户的消息标题,不要表现出任何信息,可以为空
  • 交互式登录:之前登录到缓存的次数,建议设为4或更少
  • 交互式登录:提示用户在过期之前更改密码,建议5到14天
  • 交互式登录:需要域控制器身份验证以对工作站进行解锁,建议设置为启用

在这里插入图片描述
5、Microsoft网络客户端

  • Microsoft网络客户端:对通信进行数字签名(始终),建议设置为已启用
  • Microsoft网络客户端:对通信进行数字签名(如果服务器允许),建议设置为已启用,默认设置
  • Microsoft网络客户端:将未加密的密码发送到第三方SMB服务器,建议设置为已禁用,默认设置

6、Microsoft网络服务器

  • Microsoft网络服务器:暂停会话前所需空间的时间数量,建议设置15或更少
  • Microsoft网络服务器:对通信进行数字签名(始终),建议设置为已启用
  • Microsoft网络服务器:对通信进行数字签名(如果客户端允许),建议设置 为已启用
  • Microsoft网络服务器:登录时间过期后断开与客户端的连接,建议设置为已 启用,默认设置
  • Microsoft网络服务器:服务器SPN目标名称验证级别,建议设置为由客户端 提供时接受或更高

在这里插入图片描述
7、网络访问

  • 网络访问:不允许SAM和共享的匿名枚举,建议设置为已启用

  • 网络访问:不允许存储网络身份验证的密码和凭据,建议设置为已启用

  • 网络访问:可匿名访问的共享,建议根据实际情况设置

  • 网络访问:可远程访问的注册表路径,建议设置为

    System\CurrentControlSet\Control\ProductOptions System\CurrentControlSet\Control\Server Applications
    Software\Microsoft\Windows NT\CurrentVersion
    
  • 网络访问: 网络访问:可远程访问的注册表路径和子路径,建议设置为

System\CurrentControlSet\Control\Print\Printers  System\CurrentControlSet\Services\Eventlog Software\Microsoft\OLAPServer Software\Microsoft\Windows NT\CurrentVersion\Print  Software\Microsoft\Windows NT\CurrentVersion\Windows  System\CurrentControlSet\Control\ContentIndex

8、网络安全

  • 网络安全:允许本地系统将计算机标识用于NTLM,建议设置为已启用
  • 网络安全:允许LocalSystem NULL会话回退,建议设置为已禁用
  • 网络安全:允许对此计算机的PKU2U身份验证请求使用联机标识,建议设置为已禁用
  • 网络安全:配置Kerberos允许的加密类型,建议设置
    • AES128_HMAC_SHA1, AES256_HMAC_SHA1, 将来的加密类型
  • 网络安全:在超过登录时间后强制注销,建议设置为已启用
  • 网络安全:LNA管理器身份验证级别,建议设置为仅发送NTLMv2响应,拒绝LM和NTLM

在这里插入图片描述
9、用户账户控制

  • 用户账户控制:用于内置管理员账户的管理员批准模式,建议设置已启用
  • 用户账户控制:管理员批准模式中管理员的提升权限提示的行为,建议设置为 在安全桌面上提示凭据
  • 用户账户控制:标准用户的提升提示行为,建议设置为,自动拒绝提升请求
  • 用户账户控制:允许UIAccess应用程序在不使用安全桌面的情况下提升权限, 建议设置为已启用

在这里插入图片描述
10、高级防火墙配置

==11111==
在这里插入图片描述
11、高级审核策略配置–账户登录

  • 审核凭据验证,建议设置成功和失败

==11111==
配置为:
==11111==
12、高级审核策略配置–账户管理

  • 审核应用程序组管理,建议审核成功和失败
  • 审核安全组管理,建议审核成功
  • 审核用户账户管理,建议审核成功和失败

==11111==
13、高级审核策略配置–详细跟踪

  • 审核进程创建,建议审核成功

在这里插入图片描述
14、高级审核策略配置–登录/注销

  • 审核账户锁定,建议设置失败
  • 审核注销,建议设置成功
  • 审核登录,建议成功和失败
  • 审核其他登录/注销失败,建议成功和失败
  • 审核特殊登录,建议成功

==11111==
15、高级审核策略配置–对象访问

  • 审核详细的文件共享,建议失败
  • 审核文件共享,建议成功和失败
  • 审核其他对象访问事件,建议成功和失败
  • 审核可移动存储,建议成功和失败

在这里插入图片描述
16、高级审核策略配置–策略更改
在这里插入图片描述
17、高级审核策略配置–特权使用
==11111==
18、高级审核策略配置–系统
在这里插入图片描述

二、Linux加固

1、配置简介

  • Linux种类较多,常见的有Redhat、Ubuntu、Centos、SUSE等
  • 根据不同版本,其安全配置都不太相同,主要体现在以下三点
  • 配置文件所存放的路径
  • 操作系统的命令
  • 操作系统自身的安全特性或工具

以Centos 7 为例,进行安全配置讲解,其它版本Linux可能 存在安全配置方式不同,但整体配置的维度和原则是一致的。
Centos 安全配置维度

  • 安装配置(默认配置即可)
  • 服务配置(默认配置即可)
  • 网络配置
  • 日志和审计
  • 访问、授权和认证
  • 系统运维

Centos 安全配置原则

  • 最小安全(最小安装、最小权限)
  • 不影响业务可用(安全与业务的矛盾)
  • 职责分离
  • 审计记录

因为Centos安全配置较多,本文仅列举部分典型代表,更多具体配置,可以参照 相关国内或国际标准,如等保、CIS等。

2、网络配置

  • 禁用不适用的网络协议
  • 禁用IPV6,执行以下命令
sysctl	-w	net.ipv6.conf.all.disable_ipv6=1
sysctl	-w	net.ipv6.conf.default.disable_ipv6=1
sysctl	-w	net.ipv6.route.flush=1

在这里插入图片描述

//查看配置是否生效
sysctl net.ipv6.conf.all.disable_ipv6
  • 禁用不适用的无线设备,因为Linux作为服务器工作时,无需使用无线

  • 查看无线设备

iw list
  • 查看当前连接
ip link show up

在这里插入图片描述

  • 关闭网络连接
ip link set lo down

这里将环回口lo进行关闭
在这里插入图片描述

  • 当Linux作为独立主机使用时,配置网络
  • 关闭IP转发,默认即关闭
  • 查看IP转发配置
sysctl net.ipv4.ip_forward

==11111==

  • 关闭IP转发
sysctl -w net.ipv4.ip_forward=0
  • 关闭数据包重定向
  • 查看重定向设置
sysctl net.ipv4.conf.all.send_redirects
  • 关闭重定向设置
sysctl -w net.ipv4.conf.all.send_redirects=0

在这里插入图片描述

  • 开启TCP SYN Cookies功能
  • TCP SYN功能某种程度上可以防止TCP的SYN DDOS攻击。
  • 查看TCP SYN Cookies功能
sysctl net.ipv4.tcp_syncookies
  • 开启TCP SYN Cookies功能
sysctl -w net.ipv4.tcp_syncookies=1

在这里插入图片描述
防火墙配置

  • 在Centos 较新的版本中,引入了nftables内核取代传统netfilter内核
  • 通常nftables和netfilter只用安装一种即可。
  • 基于netfilter,又有两种前端操作工具,即firewalld和iptables

netfilter+firewalld进行操作讲解

  • 防火墙配置
  • 确定安装了firewalld以及iptables管理工具
rpm -q firewalld iptables
yum install firewalld iptables

在这里插入图片描述

  • 关闭iptables的服务管理(因为同时开启iptables与firewalld会冲突)
  • 查看iptables服务
rpm -q iptables-services

在这里插入图片描述

  • 如果已经安装,可以使用以下命令
systemctl stop iptables
yum remove iptables-services
  • 确保没有安装nftables
  • 查看安装nftables的状态
rpm -q nftables

==11111==

  • 如果安装,可以删除
yum remove nftables
  • 确保防火墙服务自动启动,并正在运行
  • 查看firewalld状态
systemctl status firewalld
firewall-cmd --state

在这里插入图片描述

  • 开启firewalld
systemctl start firewalld
systemctl enable firewalld

在这里插入图片描述

  • 开启防火墙,可能会导致网络中断,所以一定要分析清楚,当前网络连接 与网络配置,再来开启防火墙

  • 确定防火墙区域配置

  • 默认firewalld会创建一个名为public的区域

  • 区域代表防火墙中的信任等级,每一个接口都应该属于区域

  • 查看当前区域,默认是public

firewall-cmd --get-default-zone

==11111==

  • 防火墙默认区域配置
  • 设置默认区域为public
firewall-cmd --set-default-zone=public

在这里插入图片描述

  • 查看当前活动的区域和接口
firewall-cmd --get-active-zones

在这里插入图片描述
设置接口到区域

firewall-cmd --zone=public --change-interface=ens33

在这里插入图片描述

  • 查看当前允许的端口和服务
firewall-cmd --list-all --zone=public

在这里插入图片描述

  • 关闭不需要的端口与服务
  • 关闭端口
firewall-cmd --remove-port=<port-number>/<port-type>

如:firewall-cmd --remove-port=25/tcp

  • 关闭服务
firewall-cmd --remove-service=<service>

如:firewall-cmd --remove-service=smtp

  • 系统审核

  • 查看系统是否安装审核服务

rpm -q audit audit-libs

在这里插入图片描述

  • 如果没有安装,而进行安装
yum install audit audit-libs
  • 查看审核服务是否开启
systemctl status auditd

在这里插入图片描述

systemctl is-enabled auditd

在这里插入图片描述

3、日志和审计配置

  • 配置审计数据大小
  • 查看audit日志最大空间,默认单位为M
  • 如图,显示为8M
cat /etc/audit/auditd.conf | grep max

在这里插入图片描述

  • 审计用户和用户组的操作
  • 查看当前用户和用户组相关的操作记录
grep identity /etc/audit/rules.d/*.rules

在这里插入图片描述

  • 当前没有任何相关配置
  • 配置记录如下:
vi /etc/sudit/rules.d/identity.rules

在这里插入图片描述

  • 配置rsyslog日志
  • rsyslog是取代syslog的新版本。rsyslog有一些优秀的特性,比如使用tcp连接,可以将日志存储到数据库,可以加密传输日志等。
  • 确保系统安装了rsyslog
rpm -q rsyslog

==11111==

  • 查看rsyslog服务状态
systemctl is-enabled rsyslog

==11111==

  • 确保日志正常输入
  • 查看当前日志目录及日志权限,日志权限应该为600(仅root可读写)
ls -l /var/log

==11111==

  • 查看日志归档处理
  • Linux系统使用logrotate按定期或指定大小进行归档处理
  • 确保logrotate正常处理syslog日志
    • 查看是否存在文件
    • ls /etc/logrotate.d/syslog

在这里插入图片描述

4、访问认证和授权配置

  • 查看计划任务的访问授权
stat /etc/crontab

==11111==
如图展示了,仅root可以访问计划任务,且相关访问时间。
同理还应检查文件daily hourly monthly weekly
==11111==

  • 查看SSH配置文件权限
  • 因为SSH可以使用密钥直接登录,如果SSH配置文件权限限制不严格,则造成SSH提权
  • 检查/etc/ssh/sshd_config的权限

在这里插入图片描述

  • 配置允许通过SSH访问的用户

  • 使用以上命令查看当前允许SSH访问的用户

    • sshd -T | grep -E '^\s*(allow|deny)(users|groups)\s+\S+'
    • 如果输出为空,说明没有配置
    • 编辑文件/etc/ssh/sshd_config,配置仅允许fox用户访问
    • 在文件中加入以下行:allowusers fox
    • 保存退出,重启SSH生效
  • 配置SSH验证失败次数

  • 查看SSH验证失败次数

    • sshd -T | grep maxauthtries

      ==11111==

    • 默认为6次,建议改为4次或更低

    • 编辑SSH配置我呢见修改即可

    • vi /etc/ssh/sshd_config
      ==11111==

  • 禁止空密码登录SSH

    • sshd -T | grep permitemptypasswords

      ==11111==

    • 查看SSH支持的加密方式,确保不要出现如des md5这类已经不再安全的算法

    • sshd -T | grep ciphers
      ==11111==

  • PAM模块配置

  • PAM(Pluggable Authentication Modules)是Linux中的认证管理模块,所有认证相关可由PAM处理。

  • 密码要求

    • /etc/security/pwquality.conf管理
    • minlen = 14,最小密码长度
    • mincalss =4 ,密码复杂度,分别是是大写字母、小写字母、数字、符号
  • 用户账户和环境

  • 查看密码过期时间,建立设为60,加图为99999,显然不合适
    在这里插入图片描述

  • 查看用户的过期时间

    grep -E '^[^:]+:[^!*]' /etc/shadow | cut -d: -f1,5

在这里插入图片描述

  • 修改用户过期时间

  • 方法一,编辑默认文件中的PASS_MAX_DAYS值

    vi /etc/login.defs

  • 方法二

    chage --maxdays 365 <user>

    比如:chage --maxdays 365 fox

  • 查看密码最小天数(原理同windows密码最小天数),建议设为1

在这里插入图片描述

  • 提示密码过期时间,建议设置为7或更多

在这里插入图片描述

  • 自动禁用账号,建议设置为30天或更少
  • 当用户指定时间没有使用时,自动禁用用户
  • 查看
    在这里插入图片描述
  • 配置方法
useradd -D -f 30

5、系统运维配置

  • 检查文件/etc/passwd的权限,应为644,同理应检查/etc/group
  • 检查文件/etc/shadow的权限,应为0,同理应检查/etc/shadow

==11111==

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

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

相关文章

功能测试与APPSCAN自动化测试结合的提高效率测试策略

背景 手工探索性测试&#xff08;Manual Exploratory Testing&#xff0c;简称MET&#xff09;是一种软件测试方法&#xff0c;它依赖于测试人员的直觉、经验和即兴发挥来探索应用程序或系统。与传统的脚本化测试相比&#xff0c;手工探索性测试不遵循固定的测试脚本&#xff0…

敲详细的springboot中使用RabbitMQ的源码解析

这里介绍的源码主要是涉及springboot框架下的rabbitmq客户端代码&#xff08;具体在springframework.amqp.rabbit包下&#xff0c;区分一下不由springboot直接接管的spring-rabbit的内容&#xff09;&#xff0c;springboot基于RabbitMQ的Java客户端建立了简便易用的框架。 sp…

重生之我在学数据结构——队列

一.队列的概念 队列是一种先进先出(First In First Out &#xff0c;FIFO)的数据结构&#xff0c;可以简单理解为排队的概念。在队列中&#xff0c;数据项按照插入的顺序排列&#xff0c;并且只能在队列的一端插入&#xff08;称为队尾&#xff09;&#xff0c;在另一端删除&a…

品牌策划新手指南:如何让你的品牌脱颖而出?

品牌策划&#xff0c;简单来说&#xff0c;就是为品牌制定一套全方位的成长和发展计划&#xff0c;就像给品牌设计一条成长路线图&#xff0c;让它能够更好地吸引顾客、建立信任、提升知名度&#xff0c;最终实现销售和市场份额的增长。 品牌策划是什么&#xff1f; 想象一下…

【性能优化】在大批量数据下使用 HTML+CSS实现走马灯,防止页面卡顿(一)

切换效果 页面结构变化 1.需求背景 项目首页存有一个小的轮播模块,保密原因大概只能这么展示,左侧图片右侧文字,后端一次性返回几百条数据(开发环境下,生产环境只会更多).无法使用分页解决,前端需要懒加载防止页面卡顿 写个小demo演示,如下 2.解决思路 获取到数据后,取第一…

二、链表(2)

24. 两两交换链表中的节点 法一&#xff1a;迭代&#xff0c;while循环&#xff0c;注意要获取next给变量&#xff0c;得先判断非null, 需要4个变量&#xff0c; n0是前&#xff0c;n1 n2是交换的两&#xff0c;n3是n2的下一个可能为空&#xff0c;这种先把变量保存起来&#…

Leetcode1688. 比赛中的配对次数

问题描述&#xff1a; 给你一个整数 n &#xff0c;表示比赛中的队伍数。比赛遵循一种独特的赛制&#xff1a; 如果当前队伍数是 偶数 &#xff0c;那么每支队伍都会与另一支队伍配对。总共进行 n / 2 场比赛&#xff0c;且产生 n / 2 支队伍进入下一轮。如果当前队伍数为 奇…

JavaWeb连接(JDBC)数据库实现增删改查

JavaWeb连接(JDBC)数据库实现增删改查 1、数据库结构 (1)、创建数据库&#xff08;source_db&#xff09; (2)、创建数据表&#xff08;tb_source&#xff09;&#xff0c;结构如下 字段名说明字段类型长度备注id编号int主键&#xff0c;自增&#xff0c;增量为 1name名称v…

前端面试 vue 按钮级的权限控制

方案一 按钮权限也可以用v-if判断 但是如果页面过多&#xff0c;每个页面页面都要获取用户权限role和路由表里的meta.btnPermissions&#xff0c;然后再做判断 这种方式就不展开举例了 方案二 使用自定义指令实现 按钮级的权限控制 思维导图 心就是自定义指令的书写 首先…

【人工智能】Transformers之Pipeline(四):零样本音频分类(zero-shot-audio-classification)

​​​​​​​ 目录 一、引言 二、零样本音频分类&#xff08;zero-shot-audio-classification&#xff09; 2.1 概述 2.2 意义 2.3 应用场景 2.4 pipeline参数 2.4.1 pipeline对象实例化参数​​​​​​​ 2.4.2 pipeline对象使用参数 2.4 pipeline实战 2.5 模…

【MySQL】:对库和表的基本操作方法

数据库使用的介绍 什么是SQL 学习数据库的使用——>基于 SQL编程语言 来对数据库进行操作 重点表述的是“需求”&#xff0c;期望得到什么结果。&#xff08;至于结果是如何得到的&#xff0c;并不关键&#xff0c;都是数据库服务器在背后做好了&#xff09; 重点表述的是…

线程之间的通信

第一题 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <stdarg.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <dirent.h> #include <…

蔡司小乐圆:护航青少年视力健康,专业应对近视挑战

在科技日新月异的今天&#xff0c;电子产品已深度融入青少年的日常&#xff0c;为生活带来便利的同时&#xff0c;也悄然间对他们的视力构成了威胁。近视&#xff0c;这一日益严峻的健康问题&#xff0c;正牵动着无数家庭的心弦。蔡司眼镜&#xff0c;作为眼镜行业的领军者&…

7月21日,贪心练习

大家好呀&#xff0c;今天带来一些贪心算法的应用解题、 一&#xff0c;柠檬水找零 . - 力扣&#xff08;LeetCode&#xff09; 解析&#xff1a; 本题的贪心体现在对于20美元的处理上&#xff0c;我们总是优先把功能较少的10元作为找零&#xff0c;这样可以让5元用处更大 …

代码随想录算法训练营第35天|LeetCode 01背包问题 二维、01背包问题 一维、416. 分割等和子集

1. LeetCode 01背包问题 二维 题目链接&#xff1a;https://kamacoder.com/problempage.php?pid1046 文章链接&#xff1a;https://programmercarl.com/背包理论基础01背包-1.html#算法公开课 视频链接&#xff1a;https://www.bilibili.com/video/BV1cg411g7Y6/ 思路&#xf…

压缩pdf大小的方法 指定大小软件且清晰

在数字化时代&#xff0c;pdf文件因其良好的兼容性和稳定性&#xff0c;已成为文档分享的主流格式。然而&#xff0c;高版本的pdf文件往往体积较大&#xff0c;传输和存储都相对困难。本文将为您详细介绍几种简单有效的方法&#xff0c;帮助您减小pdf文件的大小&#xff0c;让您…

UML的六大关系---泛化、实现、关联、聚合、组合、依赖

文章目录 前言1. 泛化关系(Generalization)2. 实现关系(Realization)3. ‌关联关系(Association)4. 聚合关系(Aggregation)5. 组合关系(Composition)6. 依赖关系(Dependency)总结 前言 讲到设计模式&#xff0c;就会有 U M L UML UML类图这个东西。 一开始就很难理解各种线啥意…

Android RSA 加解密

文章目录 一、RSA简介二、RSA 原理介绍三、RSA 秘钥对生成1. 密钥对生成2. 获取公钥3. 获取私钥 四、PublicKey 和PrivateKey 的保存1. 获取公钥十六进制字符串1. 获取私钥十六进制字符串 五、PublicKey 和 PrivateKey 加载1. 加载公钥2. 加载私钥 六、 RSA加解密1. RSA 支持三…

CTF-Web习题:2019强网杯 UPLOAD

题目链接&#xff1a;2019强网杯 UPLOAD 解题思路 打开靶场如下图所示&#xff0c;是一个注册和登录界面 那就注册登录一下&#xff0c;发现是一个提交头像的页面&#xff1a; 试了一下只有能正确显示的png图片才能提交成功&#xff0c;同时F12拿到cookie&#xff0c;base6…

树形背包问题

一些题目给定了树形结构&#xff0c;在这个树形结构中选取一定数量的点或边&#xff08;也可能是其他属性&#xff09;&#xff0c;使得某种与点权或者边权相关的花费最大或者最小。解决这类问题&#xff0c;一般要考虑使用树上背包。 树上背包&#xff0c;顾名思义&#xff0c…