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

安全性算法

目录

一、安全性算法

二、基础术语

三、对称加密与非对称加密

四、数字签名

五、 哈希算法

六、哈希算法碰撞与溢出处理


 

一、安全性算法

安全性算法的必要性:

  安全性算法的必要性是因为在现代数字化社会中,我们经常需要传输、存储和处理敏感的数据,如个人隐私信息、金融数据、商业机密等。这些数据如果未经过适当的保护,可能会被恶意攻击者获取、篡改或滥用。

安全性算法遵循以下四个特性

  1. 保密性(Confidentiality):确保只有授权者才能访问和查看数据,对非授权人员保持数据保密。

  2. 完整性(Integrity):确保数据在传输和存储过程中没有被篡改、损坏或破坏,保持数据的完整性和一致性。

  3. 认证性(Authentication):确认数据的来源和真实性,确保数据发送者和接收者的身份是真实的,并且数据没有被冒充或伪造。

  4. 不可否认性(Non-Repudiation):确保数据的发送者不能否认他/她发送过的数据,防止他/她在后期否认该数据的发送或者执行。


二、基础术语

概念定义
明文未经过加密处理的原始数据或信息。
密钥用来进行加密和解密的一串字符或数字,只有持有相应密钥的人才能对加密数据进行解密。
密文加密明文后的数据或信息。
私钥用于非对称加密算法的一种密钥,只有私钥持有者才能进行解密。
公钥用于非对称加密算法的一种密钥,公钥可以公开给任何人使用,但只有私钥持有者才能进行解密。
加密函数一种算法,将明文和密钥作为输入,生成密文作为输出,实现对数据的保护。
解密函数一种算法,将密文和密钥作为输入,生成明文作为输出,实现对加密数据的还原。

三、对称加密与非对称加密

1.对称加密

        对称加密是一种加密技术,使用相同的密钥(也称为对称密钥)进行加密和解密。在对称加密算法中,发送方使用密钥将明文转换为密文,接收方使用相同的密钥将密文转换回明文。

        对称加密的优点是加密和解密速度快,适用于大量数据的加密和解密操作。常见的对称加密算法有DES(数据加密标准)、AES(高级加密标准)等。

优点: 加密和解密速度快,适用于大量数据的加密和解密操作。常见的对称加密算法有DES(数据加密标准)、AES(高级加密标准)等。然而,对称加密存在一个问题,即如何安全地共享密钥。如果密钥在传输过程中被攻击者获取,那么加密的安全性就会被破坏。因此,在某些情况下,非对称加密算法更常被用于密钥的安全交换。

2.非对称加密

        非对称加密是一种加密技术,与对称加密算法不同,它使用一对密钥进行加密和解密操作。这对密钥包括公钥(public key)和私钥(private key)。公钥可以公开给其他人使用,而私钥则只能由密钥的所有者保管,不公开给他人。

        在非对称加密中,发送方使用接收方的公钥来加密数据,而接收方则使用自己的私钥来解密。相反,如果发送方要发送加密的信息给接收方,发送方可以使用自己的私钥进行签名,接收方使用发送方的公钥验证签名的有效性。这种加密和解密操作过程使用不同的密钥,因此被称为“非对称”。

常用非对称加密RSA

优点: 可以实现加密和解密的分离,并且可以安全地共享公钥。即使公钥被其他人获取,也无法通过公钥推导出私钥。常见的非对称加密算法有RSA(由Rivest、Shamir和Adleman发明)和Elliptic Curve Cryptography(椭圆曲线加密)等。


四、数字签名

1.数字签名概念

        数字签名是一种用于验证数据完整性、身份认证和防止数据篡改的加密技术。它常用于确保发送方的身份,以及确保数据在传输过程中没有被篡改或伪造。

2.数字签名工作方式

        数字签名的工作方式是以公钥和哈希函数相互配合使用的,用户A先将明文的M以哈希函数计算出哈希值H,再用自己的私钥对哈希值H进行加密,加密后的内容和即为"数字签名"。最后将明文与数字签名一起发送给用户B。由于这个数字签名是由用户A的私钥进行加密的,且该私钥只有A才有,因此该数字签名可以代表A的身份。


五、 哈希算法

1.哈希算法是通过哈希函数计算一个键值对应的地址,进而建立哈希表,并依靠哈希函数查找各个键值存放在哈希表中的地址。查找速度与数据的多少无关,在没有碰撞和数据溢出的情况下即可查找成功,该方法还有保密性高的特点。

常见的哈希算法有除留余数法,平方取中法,折叠法和数字分析法

1.除留余数法

最简单的哈希函数是将数据除以一个某个常数后,取余数作为索引。

h(key) = key mod B

案例:在一个有13个位置的数组中,只是用7个地址,值分别是12,65,70,99,33,67,48。那么B就可以是13 。

案例代码:

public class javaDemo {public static void main(String[] args) {Map<Integer,Integer> map = new HashMap<>();int data[] = new int[]{12,65,70,99,33,67,48};//初始化哈希表for (int i=0;i<13;i++){map.put(i,null);}//除留余数for (int temp:data) {map.put((temp%13),temp);}System.out.println(map);
//注意:改代码只是展示除留余数法,碰撞问题将在后面进行修改}
}

注意:B虽然可以自己定义,但是尽量选择用质数(除了1和自身外没有其他正因数的数)

2.平方取中法

 平方取中法和除留余数法相当类似,就是先计算数据的平方,之后取中间的某段数字作为索引。

案例:
原始数据:12,65,70,99,33,67,51

平方后:144,4225,9801,1089,4489,2601

再通过取百位数或者十位数作为键值,取值后如下。

14,22,90,80,08,48,60

将上述7个数字对应原来的七个原始数据(12,65,70,99,33,67,51)

如果存放的空间为100地址空间

则正常进行数据映射如

f(14) = 12

f(22) = 65

.....

如果存放的空间为10地址空间,则需要对取值后的数进行压缩10倍,即14/10 = 1,22/10=2...

f(1) = 12

f(2) = 65

........

3.折叠法

        折叠法是将数据转换为一串数字后,先将这串数字拆成及部分,再把他们加起来,就可以计算出这个键值的桶地址(Bucket Address),例如,有一个数据转换成数字后为2365479125443.若以每四个数字为一个部分,则可以拆分成2365、4791、2544、3.将这4组数字加起来后即为索引值。

2365+4791+2544+3 = 9703 ->桶地址

        在折叠法中有两种做法。一种是向上例那样直接将每一部分相加所得的值作为其桶地址,这种做法成为“移动折叠法”。哈希法的设计原则之一是降低碰撞,如果希望降低碰撞,就可以将上述的数字中的技术为段或偶数位段反转后相加,以取得桶地址,这种改进后的做法成为“边界折叠法”

        还是以上面的数字为例,请看下列说明

情况一:将偶数位段反转

   2365(第一位的是奇数位,故不反转)

+1974(第二位的是偶数位,故要反转)

+ 2544(第三位的是奇数位,故不反转)

+ 3      (第四位的是偶数位,故要反转)

= 6886 ->桶地址

情况二:将奇数位段反转

   5632 (第一位的是奇数位,需要反转)

+ 4791(第二位的是偶数位,故不反转)

+ 4452(第三位的是奇数位,需要反转)

+ 3        (第四位的是偶数位,故不反转)

= 14878 -> 桶地址

4.数字分析法

数字分析法,通过分析数据,找取数据中数字重复率低的数字,将索引空间放在数据中重复率最低的位置,以此作为数据的索引。


六、哈希算法碰撞与溢出处理

碰撞与溢出

        哈希算法将输入数据映射到固定长度的哈希值。碰撞是指不同的输入数据最终得到相同的哈希值,而溢出则是指较大的输入数据映射到较小的输出空间中。这些问题的出现是由于哈希算法必须处理无限输入空间映射到有限输出空间的情况导致的。虽然设计者会尽力减少碰撞和溢出的概率,但在某些情况下仍无法完全避免。

1.线性探测法

线性探测算法:

public class javaDemo {public static void main(String[] args) {//假设地址空间为10,并且初始值为-1int index[] = new int[10];int num;int temp = num % index.length;while (true){
//            如果目标位置不存在数字则存入数据if (index[temp] == -1){index[temp] = num;break;}else {temp = (num+1) % index.length;}}}
}

 


相关文章:

安全性算法

目录 一、安全性算法 二、基础术语 三、对称加密与非对称加密 四、数字签名 五、 哈希算法 六、哈希算法碰撞与溢出处理 一、安全性算法 安全性算法的必要性&#xff1a; 安全性算法的必要性是因为在现代数字化社会中&#xff0c;我们经常需要传输、存储和处理敏感的数据…...

解决ASP.NET Core的中间件无法读取Response.Body的问题

概要 本文主要介绍如何在ASP.NET Core的中间件中&#xff0c;读取Response.Body的方法&#xff0c;以便于我们实现更多的定制化开发。本文介绍的方法适用于.Net 3.1 和 .Net 6。 代码和实现 现象解释 首先我们尝试在自定义中间件中直接读取Response.Body&#xff0c;代码如…...

DownloadingImages 下载缓存图片,显示图片文字列表

1. 用到的技术点: 1) Codable : 可编/解码 JSON 数据 2) background threads : 后台线程 3) weak self : 弱引用 4) Combine : 取消器/组合操作 5) Publishers and Subscribers : 发布者与订阅者 6) FileManager : 文件管理器 7) NSCache : 缓存 2. 网址: 2.1 测试接口网址: …...

【应用层协议】HTTPS的加密流程

目录 一、认识HTTPS 二、密文 1、对称加密 2、非对称加密 三、HTTPS加密流程 1、建立连接 2、证书验证 3、密钥协商 4、数据传输 5、关闭连接 总结 在数字化时代&#xff0c;互联网已经成为我们生活和工作中不可或缺的一部分。然而&#xff0c;随着数据的不断增加&a…...

最新AI创作系统/AI绘画系统/ChatGPT系统+H5源码+微信公众号版+支持Prompt应用

一、AI创作系统 SparkAi创作系统是基于国外很火的ChatGPT进行开发的AI智能问答系统和AI绘画系统。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图…...

Z410 2023款无人机,专为零基础开发者打造的入门级开源无人机

为什么开发Z410升级款-Easydrone无人机 新手开发者通常在本科阶段加入人工智能行业&#xff0c;对无人机二次开发往往一知半解&#xff0c;面临着C、Python、ROS和mavlink等一系列入门知识&#xff0c;学习起来非常困难&#xff0c;学习的过程中也面临许多挫折。为了帮助零基础…...

elementui修改message消息提示颜色

/* el弹出框样式 */ .el-message {top: 80px !important;border: 0; }.el-message * {color: var(--white) !important;font-weight: 600; }.el-message--success {background: var(--themeBackground); }.el-message--warning {background: var(--gradientBG); }.el-message--…...

Linux和Hadoop的学习

目录 1. Linux的常用快捷键2. Hadoop集群部署问题汇总 1. Linux的常用快捷键 复制&#xff1a;CtrlshiftC 粘贴&#xff1a;CtrlshiftV TAB&#xff1a;补全命令 编写输入&#xff1a;i 退出编写&#xff1a;esc 保存并退出&#xff1a;shift&#xff1a; 2. Hadoop集群部署问…...

通达信指标预警信号,自动发送给微信好友1.0

1.功能介绍&#xff1a;十一节假日期间写了一个&#xff0c;可将股票指标预警信号&#xff0c;自动发送给微信好友/微信群&#xff08;即电脑端的消息&#xff0c;通过模拟微信操作可在手机上显示&#xff09;。本工具按通达信写的&#xff0c;如果大智慧&#xff0c;同花顺也能…...

浅谈CDN内容分发与全局负载均衡

CDN简介 CDN的全称是Content Delivery Network&#xff0c;即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络&#xff0c;依靠部署在各地的边缘服务器&#xff0c;通过中心平台的负载均衡、内容分发、调度等功能模块&#xff0c;使用户就近获取所需内容&#xff0c…...

【框架风格】解释器模式

1、描述 解释器框架风格&#xff08;Interpreter Framework Style&#xff09;是一种软件架构风格&#xff0c;其核心思想是构建一个解释器&#xff08;Interpreter&#xff09;来解释并执行特定领域或问题领域的语言或规则。以下是解释器框架风格的一些特点&#xff1a; 1. 领…...

c++视觉图像线性混合

图像线性混合 使用 cv::addWeighted() 函数对两幅图像进行线性混合。alpha 和 beta 是两幅图像的权重&#xff0c;它们之和应该等于1。gamma 是一个可选的增益&#xff0c;这里设置为0。 你可以通过调整 alpha 的值来改变混合比例。如果 alpha0.5&#xff0c;则两幅图像等权重…...

Doris 2.0.1 DockerFile版 升级实战

1、Doris 2.0.1 DockerFile 的制作 参考 Doris 2.0.1 Dockerfile制作-CSDN博客 2、之前的Doris 集群通过 Docker容器进行的部署&#xff0c;需提前准备好Doris2.0.1的镜像包 参考&#xff1a; 集群升级 - Apache Doris Doris 升级请遵守不要跨两个及以上关键节点版本升级的…...

kotlin aes 加密解密

文章目录 1. key填充2. 加密3. 解密 1. key填充 aes算法对key的字节数有要求 所以对输入的key要做填充处理 fun fillKey(key: String): ByteArray {val random SecureRandom.getInstance("SHA1PRNG")random.setSeed(key.toByteArray())val generator KeyGenerato…...

sqlite3的lib和头文件在哪下载 2023/9/19 上午10:46:43

2023/9/19 上午10:46:43 sqlite3的lib和头文件在哪下载 2023/9/19 上午10:46:54 你可以从SQLite官方网站下载SQLite的lib和头文件。请按照以下步骤进行操作: 打开SQLite官方网站:https://www.sqlite.org/index.html 在页面上方的菜单中选择 “Download”(下载)。 在下载…...

磁通量概述

磁通量指的是设在磁感应强度为B的匀强磁场中&#xff0c;有一个面积为S且与磁场方向垂直的平面&#xff0c;磁感应强度B与面积S的乘积&#xff0c;叫做穿过这个平面的磁通量&#xff0c;简称磁通&#xff08;Magnetic Flux&#xff09;。标量&#xff0c;符号“Φ”。在一般情况…...

MySql 终端常用指令

一、开发背景 利用数据库实现数据的增删改查 二、开发环境 Window10 mysql-8.0.33-win64 三、实现步骤 1、管理员模式打开终端 2、登录数据库&#xff08;停止 开启 登录&#xff09; 具体指令参考 MySql 安装篇 ​​​​​​​ ​​…...

【React-hooks篇幅】自定义hooks

首先得了解自定义 Hooks 跟普通函数区别在于哪里&#xff1f; Hooks 只应该在 React 函数组件内调用&#xff0c;而不应该在普通函数调用。Hooks 能够调用诸如 useState、useEffect、useContext等&#xff0c;普通函数则不能。由此可以通过内置的Hooks等来获得Firber的访问方式…...

面试算法21:删除倒数第k个节点

题目 如果给定一个链表&#xff0c;请问如何删除链表中的倒数第k个节点&#xff1f;假设链表中节点的总数为n&#xff0c;那么1≤k≤n。要求只能遍历链表一次。 例如&#xff0c;输入图4.1&#xff08;a&#xff09;中的链表&#xff0c;删除倒数第2个节点之后的链表如图4.1&a…...

数据结构——排序算法(C语言)

本篇将详细讲一下以下排序算法&#xff1a; 直接插入排序希尔排序选择排序快速排序归并排序计数排序 排序的概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某写关键字的大小&#xff0c;按照递增或递减0排列起来的操作。 稳定性的概念…...

基于Http Basic Authentication的接口

Basic Authenrication是 HTTP 用户代理提供用户名的一种方法 &#xff0c;它是对 Web 资源实施访问控制的最简单技术&#xff0c;它不需要 Cookie、会话标识符和登录页面。HTTP Basic身份验证使用静态的标准HTTP标头&#xff0c;这意味着 不必在预期中进行握手。 当用户代理想…...

【yaml文件的编写】

yaml文件编写 YAML语法格式写一个yaml文件demo创建资源对象查看创建的pod资源创建service服务对外提供访问并测试创建资源对象查看创建的service在浏览器输入 nodeIP:nodePort 即可访问 详解k8s中的port&#xff1a;portnodePorttargetPortcontainerPortkubectl run --dry-runc…...

kt6368A双模蓝牙芯片无法透传 可能是什么问题呢

一、问题简介- kt6368A蓝牙芯片无法透传 可能是什么问题呢&#xff1f; KT6368A蓝牙芯片&#xff0c;在使用上还是非常的简单&#xff0c;总共也就8个腿&#xff0c;焊接也是很容易的事情 出现不能透传&#xff0c;大概率有如下2点原因 硬件问题&#xff0c;比如&#xff1…...

SpringBoot终极讲义第二章笔记

01.关于Import 和 ImportResource Import注解用法(类上): 一般和Configuration一起使用,用来导入里面Bean方法返回的对象 ImportResource(类上):一般和Configuration一起使用,用来导入某个.XML文件里的bean 个人觉得这两个注解有点鸡肋 SpringBoot启动类默认扫描的是启动类…...

【C++面向对象侯捷下】4. pointer-like classes,关于智能指针 | 5. function-like classes,所谓仿函数

文章目录 4. pointer-like classes,关于智能指针pointer-like classes,关于智能指针 shared_ptrpointer-like classes,关于迭代器5. function-like classes&#xff0c;所谓仿函数【不懂&#xff0c;跳过】 4. pointer-like classes,关于智能指针 pointer-like classes,关于智…...

社科院与杜兰大学能源管理硕士项目——惊喜会随时间慢慢酝酿而出

我们越来越难感受到惊喜&#xff0c;按部就班的生活让我们丧失了感知力&#xff0c;我们再难以被简单的确幸所打动。试试停下脚步&#xff0c;惊喜往往不期而遇。社科院与杜兰大学能源管理硕士项目是你人生中的小确幸吗 学习是一种持续不断的自我提升&#xff0c;它能让我们逐渐…...

Array简介

概念&#xff1a; 数组&#xff08;Array&#xff09;是Java中最简单的数据结构之一&#xff0c;它用于存储固定大小的相同类型元素序列。数组是一个连续分配的内存块&#xff0c;可以通过索引访问其中的元素。元素在数组中按照顺序排列&#xff0c;并使用整数索引来唯一标识每…...

Django的模版使用(Django-03)

一 模版的使用 模板引擎是一种可以让开发者把服务端数据填充到html网页中完成渲染效果的技术。它实现了 把前端代码和服务端代码分离 的作用&#xff0c;让项目中的业务逻辑代码和数据表现代码分离&#xff0c;让前端开发者和服务端开发者可以更好的完成协同开发。 静态网页&…...

详解分布式搜索技术之elasticsearch

目录 一、初识elasticsearch 1.1什么是elasticsearch 1.2elasticsearch的发展 1.3为什么学习elasticsearch? 1.4正向索引和倒排索引 1.4.1传统数据库采用正向索引 1.4.2elasticsearch采用倒排索引 1.4.3posting list ​1.4.4总结 1.5 es的一些概念 1.5.1文档和字段 …...

系统架构设计:3 软件架构建模技术与应用

目录 一 架构“4+1”视图 二 论点 1 架构的本质 2 “4+1”视图 (1)逻辑视图 <...

JAVA在线电子病历编辑器源码 B/S架构

电子病历在线制作、管理和使用的一体化电子病历解决方案&#xff0c;通过一体化的设计&#xff0c;提供对住院病人的电子病历书写、保存、修改、打印等功能。电子病历系统将临床医护需要的诊疗资料以符合临床思维的方法展示。建立以病人为中心&#xff0c;以临床诊疗信息为主线…...

TS中的枚举是什么如何使用

在 TypeScript 中&#xff0c;枚举&#xff08;enum&#xff09;是一种用于定义命名常量集合的数据类型。枚举可以提高代码的可读性和可维护性&#xff0c;因为它允许开发人员定义并使用有意义的符号名称来表示特定的常量。 下面是一个使用枚举的示例&#xff1a; enum Color…...

UG\NX二次开发 重命名特征对象 UF_OBJ_set_name

文章作者:里海 来源网站:《里海NX二次开发3000例专栏》 感谢粉丝订阅 感谢 林闹 订阅本专栏,非常感谢。 简介 UG\NX二次开发 重命名特征 UF_OBJ_set_name 效果 代码 #include "me.hpp" #include <vector> #include...

低欲望社会:只要我没欲望,世界就对我束手无策?

新的转变正在发生&#xff0c;越来越多的人&#xff0c;正从外部的物质世界向内部的精神世界回归。 比如&#xff0c;中产不再炫名牌&#xff0c;而是改炫读书&#xff1b;打工人不再炫工资&#xff0c;而是炫如何整顿职场。 越来越多的人认为消费主义弥漫着恶臭&#xff0c;…...

抢红包设计

抢红包大致可以分为2步&#xff1a;1 发红包 &#xff1b;2 抢红包 发红包流程 为了突出红包设计主题&#xff0c;以下设计会忽略支付流程、24H过期退款剩余金额、用户领取红包余额到账等业务&#xff0c;则简化后的相关表设计如下&#xff1a; CREATE TABLE red_record (id…...

k8s集群-6(daemonset job cronjob控制器)

Daemonset 一个节点部署一个节点 当有节点DaemonSet 确保全部 (或者某些) 节点上运行一个 Pod 的副本。加入集群时&#xff0c;也会为他们新增一个 Pod 。当有节点从集群移除时&#xff0c;这些Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。 DaemonSet 的典型用…...

Compose 编译器版本和Kotlin版本对应关系

使用了最新的kotlin版本&#xff0c;compose报错&#xff0c;不兼容&#xff0c;在这里记录一下版本对应关系 值得注意的是Compose Kotlin 编译器扩展 (androidx.compose.compiler) 未关联到 Compose 库版本。相反&#xff0c;它会关联到 Kotlin 编译器插件的版本&#xff0c;…...

vite+vue+cesium

1.创建vite项目 npm create vite 项目名称 2. 选择vuejs/ts 3.在终端输入命令 npm install 4.安装cesium插件&#xff0c;在终端输入命令 npm i cesium vite-plugin-cesium vite -D 5.项目配置cesium 在vite.config.js里进行配置 import { defineConfig } from vite i…...

tcp滑动窗口原理

18.1 滑动窗口 我们再来看这个比喻&#xff1a; 网络仅仅是保证了整个网络的连通性&#xff0c;我们我们基于整个网络去传输&#xff0c;那么是不是我想发送多少数据就发送多少数据呢&#xff1f;如果是这样的话&#xff0c;是不是就会像我们的从一个池塘抽水去灌到另外一个…...

3.4 Android bpfloader初始化流程解读(二)

我继续看bpfloader是如何读取和处理bpf程序的。 4.2 读取代码段之readCodeSections static int readCodeSections(ifstream& elfFile, vector<codeSection>& cs, size_t sizeOfBpfProgDef,const bpf_prog_type* allowed, size_t numAllowed) {...ret = readSect…...

Linux0.12内核源码解读(2)-Bootsect.S

作者&#xff1a;小牛呼噜噜 | https://xiaoniuhululu.com 计算机内功、源码解析、科技故事、项目实战、面试八股等更多硬核文章&#xff0c;首发于公众号「小牛呼噜噜」 文章目录 回顾计算机启动过程8086、80x86是什么意思?寄存器初始化CS:IPCPU是如何和ROM相连的?加载MBR到…...

虚拟环境搭建、后台项目创建及目录调整、封装logger、封装全局异常、封装Response、后台数据库创建

1 虚拟环境搭建 #1 虚拟环境作用多个项目&#xff0c;自己有自己的环境&#xff0c;装的模块属于自己的# 2 使用pycharm创建-一般放在项目路径下&#xff1a;venv文件夹-lib文件夹---》site-package--》虚拟环境装的模块&#xff0c;都会放在这里-scripts--》python&#xff0…...

每日一练 | 网络工程师软考真题Day39

1、Windows Server 2003操作系统中&#xff0c;IIS6.0不提供以下 效劳。 A&#xff0e;web B&#xff0e;smtp C&#xff0e;pop3 D&#xff0e;ftp 2、Windows Server 2003操作系统中&#xff0c; 提供了远程桌面访问。 A&#xff0e;ftp B&#xff0e;email C&#xf…...

Android Studio编写xml布局不提示控件的部分属性问题的解决

最近突然发现Android Studio编写xml&#xff0c;发现有一部分控件的属性没有了代码提示&#xff0c;主要体现为id,margin等属性不再有代码提示&#xff0c;如下图。 但是手动输入仍然有效。然后删掉Android Sdk重新回来还是发现有问题&#xff0c;导一个之前的旧项目进来&#…...

BUGKU-simple_SSTI_1漏洞注入

SSTI漏洞注入 SSTI全称Server side template injection.服务端模板注入这节课主要讲flask的模板注入.flask会把类似于 的变量当做参数来渲染并填充到web页面,如果该参数可控并被后台解析则有可能被注入恶意代码导致注入漏洞请注意 模板注入只会存在于二次渲染中,无二次渲染不会…...

Python:dict

一些关于dict的奇妙观察 实验一 首先&#xff0c;创建两个一模一样的字典&#xff1a; dict1 {a: 1} dict2 {a: 1}然后&#xff0c;进行各种各样的相等判断&#xff1a; print(dict1 dict2) print(dict1.keys() dict2.keys()) print(dict1.values() dict2.values()) p…...

git和svn 的国内的下载地址

CNPM Binaries Mirror 下面是svn的地址 TortoiseSVN 64位下载-TortoiseSVN客户端官方版下载-华军软件园...

matplotlib制图进阶版

需求&#xff1a;两个产品销量的可视化折线图 1、使用pandas读取数据 2、生成销售数量的折线图...

【Java 进阶篇】HTML介绍与软件架构相关知识详解

HTML&#xff08;Hypertext Markup Language&#xff09;是一种用于创建网页的标记语言。它是互联网上信息传递和展示的基础&#xff0c;无论是在浏览器中查看网页还是在移动设备上浏览应用程序&#xff0c;HTML都扮演着关键角色。本文将向您介绍HTML的基础知识&#xff0c;并探…...

Python数据攻略-Pandas与机器学习数据准备

在机器学习项目中,大部分时间都花在了数据准备上。你可能听说过“数据是机器学习的燃料”的说法,这是因为高质量的数据是构建出色模型的关键。 在这篇文章中将使用Pandas库来进行数据准备。为了让内容更贴近实际将使用《三国志》游戏中的角色数据作为样本。 文章目录 数据编…...