网安第二天笔记

ssh 22端口 账号密码登陆、证书登录

smtp 25端口 邮件协议

DNS 53

DHCP 67 68端口 四个包

        1.DHCP服务器:服务器管理IP地址池和配置参数

        2.客户端请求:发送DHCP广播请求,discover消息

        3.DHCP服务器回应:收到discover会回复offer信息(包含可用IP和配置信息)

        4.客户端选择:收到多个offer后,选择其中一个将offer的源地址发给服务器(request消息)

        5.服务器确认收到:收到request后,向用户端发送acknowledgment消息

        6.客户端配置

http 80 三次握手

pop3 110 邮件协议

https 443

ladp 389 域控制器

mysql 3306

SQL server  1433 C#

mogodb        27017

redis         6379

oracle 1521       数据库

 Windows远程登陆       3389

Flask 是一种流行的 Python Web 框架,用于构建简单而强大的 Web 应用程序。

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, Flask!"

if __name__ == '__main__':
    app.run()

创建了一个名为 app 的 Flask 应用程序对象,并使用 @app.route() 装饰器定义了一个路由 /,它将返回 "Hello, Flask!"。最后,通过调用 app.run() 方法来运行应用程序。

运行应用程序时,可以在命令行中执行 Python 文件,或者直接在集成开发环境(IDE)中点击运行按钮。Flask 将启动一个开发服务器,并监听默认端口 5000。打开浏览器并访问 http://localhost:5000,即可看到 "Hello, Flask!" 的输出。

编码

HTML编码:也称实体编码

1.对于待编码的字符,在 HTML 中找到对应的实体名称或字符引用。
2.将原字符替换为对应的实体名称或字符引用。

实体名称(entity name)使用 & 符号作为前缀和 ; 符号作为后缀,形式为 &entity_name;。例如,小于号 < 的实体名称为 &lt;,引号 " 的实体名称为 &quot;。

字符引用(character reference)使用十进制或十六进制数来表示字符的 Unicode 编码,形式为 &#decimal_number; 或 &#xhexadecimal_number;。例如,小于号 < 的字符引用可以是 &#60; 或 &#x3C;。

以下是一些常见的特殊字符及其对应的实体名称和字符引用:

<:实体名称 &lt;,字符引用 &#60; 或 &#x3C;
>:实体名称 &gt;,字符引用 &#62; 或 &#x3E;
":实体名称 &quot;,字符引用 &#34; 或 &#x22;
':实体名称 &apos;,字符引用 &#39; 或 &#x27;
&:实体名称 &amp;,字符引用 &#38; 或 &#x26;
        通过 HTML 编码,特殊字符可以被正确显示在网页上,而不会与 HTML 标签冲突或产生解析错误。这对于防止跨站脚本攻击(XSS)等安全威胁具有重要作用

        需要注意的是,除了特殊字符外,很多情况下并不需要对常规的英文字母、数字和一些符号进行 HTML 编码。只有在确保特殊字符不会引起混淆或解析错误时才需要进行编码处理。

        当处理 HTML 数据时,我们可以使用编码和解码函数来进行相应的转换操作。例如,在 JavaScript 中,可以使用 innerHTML 属性或 textContent 属性来设置或获取 HTML 文本,浏览器会自动处理 HTML 编码和解码的过程。此外,还有一些编程语言和框架提供了专门的函数或工具库来处理 HTML 编码和解码,以简化开发过程。

URL 编码:

        是一种用于在 URL 中表示特殊字符的编码方式,也被称为百分号编码(percent encoding)。它通过将特殊字符转换为特定的编码形式,以避免与 URL 结构冲突或引起解析错误。

URL 编码的规则很简单:将特殊字符替换为 % 符号后跟两位十六进制数。具体的编码过程如下:

1.对于待编码的字符,检查其 ASCII 码值。
2.将 ASCII 码值转换为两位十六进制数。
3.在原字符前加上 % 符号,并用两位十六进制数表示的值替换原字符。
例如,假设有一个包含特殊字符的 URL:https://example.com/search?q=hello world!。我们要对其中的特殊字符进行编码。

1.空格字符 " " 的 ASCII 码值为 32,转换为十六进制为 20。所以,空格字符被编码为 %20。
2.惊叹号字符 "!" 的 ASCII 码值为 33,转换为十六进制为 21。所以,惊叹号字符被编码为 %21。
        

        最终编码后的 URL 为:https://example.com/search?q=hello%20world%21。这样,URL 就不会因为特殊字符而导致解析错误。

        URL 编码常用于处理 URL 参数或表单数据的安全传输问题。它确保了特殊字符被正确解释,并且可以防止 URL 注入攻击或使 URL 格式无效。当处理含有特殊字符的 URL 数据时,通常会调用编码和解码函数(如 JavaScript 的 encodeURIComponent() 和 decodeURIComponent() 函数)来进行相应的处理。

        需要注意的是,URL 编码并不对所有字符进行编码,只对特殊字符进行编码,例如空格、问号、等号等。其他常规的英文字母、数字和一些符号不会被编码。同时,URL 编码只能确保 URL 的完整性和有效性,并不能提供真正的安全性。在涉及到数据机密性的场景下,还需要使用其他加密手段来保护数据的安全传输。

加密传输协议(Transport Layer Security,TLS)

        是一种用于保护网络通信安全的协议。TLS 旨在通过提供加密、数据完整性和身份认证等特性,确保在互联网上传输的数据得到保护,不被未经授权的访问或篡改。

TLS 是一种协议套件,其基于 SSL(Secure Sockets Layer)协议演变而来。目前,TLS 的最新版本为 TLS 1.3,它在安全性和性能方面都有一定的改进。

TLS 的主要特性包括:

  1. 数据加密:TLS 使用对称密钥加密和非对称密钥加密相结合的方式,用于加密在网络上传输的数据。对称密钥加密用于实际数据的加密和解密,而非对称密钥加密用于在通信开始时建立安全连接和交换对称密钥。

  2. 数据完整性:TLS 使用消息认证码(Message Authentication Code,MAC)来保证数据完整性。MAC 是在加密数据的基础上计算的校验值,并与数据一起传输,以便接收方验证数据在传输过程中是否被篡改。

  3. 身份认证:TLS 通过使用数字证书进行身份认证,确保通信双方的身份是可信的。服务器端必须具有有效的数字证书进行身份验证,而客户端可以选择进行身份验证或不验证。

  4. 前向保密:TLS 1.3 引入了前向保密(Forward Secrecy)的概念。它确保即使长期的私钥被泄露,先前的通信仍然是安全的。每次建立连接时,都会生成新的临时密钥用于数据加密,提高了安全性。

  5. 握手过程:在建立 TLS 连接之前,客户端和服务器之间需要进行握手过程来协商加密算法、建立安全连接等。该过程包括互相验证身份、协商加密算法版本和密钥等重要信息。

TLS 在保护各种网络通信中扮演着重要角色,特别是在涉及敏感数据传输的场景下,如网上银行、电子商务、电子邮件等。它提供了一种标准化的安全通信机制,利用密码学和协议规范来确保通信的机密性、完整性和可信性。

需要注意的是,TLS 只保护数据在网络传输过程中的安全性,而不解决应用程序本身的安全问题。因此,在实现安全通信时,还需要结合其他安全控制措施,如访问控制、身份认证和数据加密等。同时,使用更新的 TLS 版本,并及时应用安全补丁,以防止已知的漏洞和攻击。

MD5(Message Digest Algorithm 5)和 SHA(Secure Hash Algorithm)

        都是常见的哈希算法,用于对数据进行加密和生成摘要(散列值)。

MD5 加密: MD5 是一种广泛使用的哈希算法,生成的摘要长度为 128 位。然而,由于其已被证明存在一些安全性问题,不再推荐用于加密敏感数据。在许多编程语言中,都有内置的函数或库可以计算 MD5 哈希值。以下是一个示例,演示如何使用 Python 进行 MD5 加密:

import hashlib

def md5_encrypt(data):
    md5 = hashlib.md5()
    md5.update(data.encode('utf-8'))
    return md5.hexdigest()

plaintext = "Hello, world!"
encrypted = md5_encrypt(plaintext)
print("MD5 encrypted value:", encrypted)

2.SHA 加密: SHA 是一系列安全哈希算法,包括 SHA-1、SHA-256、SHA-384、SHA-512 等。SHA-256 是最常用的 SHA 算法之一,它生成的摘要长度为 256 位。相较于 MD5,SHA 算法提供了更高的安全性和抵抗碰撞的能力。以下是一个示例,演示如何使用 Python 进行 SHA-256 加密:

import hashlib

def sha256_encrypt(data):
    sha256 = hashlib.sha256()
    sha256.update(data.encode('utf-8'))
    return sha256.hexdigest()

plaintext = "Hello, world!"
encrypted = sha256_encrypt(plaintext)
print("SHA-256 encrypted value:", encrypted)

Base64 编码

是一种将二进制数据转换为可打印字符的编码方式。它常用于在文本协议中传输或存储二进制数据,例如在电子邮件中传输附件或在网页中嵌入图像。

Base64 编码使用了 64 个字符来表示所有可能的 6 位组合。这些字符包括 A-Z(大小写敏感)、a-z、0-9 和两个特殊字符 "+" 和 "/"。另外,还可能包含一个填充字符 "=",用于确保编码后的数据长度为 4 的倍数。

Base64 编码的主要特点如下:

  1. 可读性:Base64 编码后的数据由可见字符组成,因此可以在各种文本系统中正确地表示和传输,而不会出现乱码或非法字符。

  2. 扩展性:Base64 编码适用于各种二进制数据,包括文本、图像、音频、视频等。通过编码,可以将这些数据转换为文本格式,方便传输和处理。

  3. 增加数据大小:Base64 编码会增加数据的大小。编码后的数据通常比原始数据大约 1/3,并且长度总是 4 的倍数。这是因为每 3 个字节的数据会被编码为 4 个字符。

Base64 编码的原理是将 3 个字节的数据分为 4 个 6 位的组,并将每个组转换为对应的可打印字符。如果原始数据不足 3 个字节,Base64 编码会使用填充字符 "=" 补齐。

以下是一个示例,演示如何使用 Python 进行 Base64 编码和解码:

import base64

# 编码
data = b'Hello, world!'  # 使用字节串作为输入数据
encoded_data = base64.b64encode(data)
print("Base64 encoded data:", encoded_data)

# 解码
decoded_data = base64.b64decode(encoded_data)
print("Base64 decoded data:", decoded_data.decode('utf-8'))

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PostMan+Jmeter+QTP工具介绍及安装

目录 一、PostMan介绍​编辑 二、下载安装 三、Postman与Jmeter的区别 一、开发语言区别&#xff1a; 二、使用范围区别&#xff1a; 三、使用区别&#xff1a; 四、Jmeter安装 附一个详细的Jmeter按照新手使用教程&#xff0c;感谢作者&#xff0c;亲测有效。 五、Jme…

Linux_CentOS_7.9部署Docker以及镜像加速配置等实操验证全过程手册

前言&#xff1a;实操之前大家应该熟悉一个新的名词DevOps 俗称开发即运维、新一代开发工程师&#xff08;Development和Operations的组合词&#xff09;是一组过程、方法与系统的统称&#xff0c;用于促进开发&#xff08;应用程序/软件工程&#xff09;、技术运营和质量保障&…

Angular:动态依赖注入和静态依赖注入

问题描述&#xff1a; 自己写的服务依赖注入到组件时候是直接在构造器内初始化的。 直到看见代码中某大哥写的 private injector: Injector 动态依赖注入和静态依赖注入 在 Angular 中&#xff0c;使用构造函数注入的方式将服务注入到组件中是一种静态依赖注入的方式。这种方…

Python显示循环代码的进度条

目录 1. tqdm库 2. alive_progress库 3. progressbar库 1. tqdm库 tqdm是一个快速&#xff0c;可扩展的Python进度条&#xff0c;可以在Python长循环中添加一个进度提示信息 import time from tqdm import trangefor i in trange(100):# do somethingtime.sleep(0.5) 2. a…

微服务——Nacos配置管理

目录 Nacos配置管理——实现配置管理 配置管理实践 Nacos配置管理——微服务配置拉取 Nacos配置管理——配置热更新 方式一: ​编辑 方式二(推荐方式): Nacos配置管理——多环境配置共享 优先级问题 Nacos配置管理——nacos集群搭建 总结​编辑 Nacos配置管理——实现配置管…

【ADS】导入CMOS衬底文件+使用coilsys生成电感

新建工程经常忘记怎么操作&#xff0c;简记防遗忘。 操作步骤 1.unzip file2.原理图仿真3.Layout加载衬底文件4.使用coilsys生成电感 1.unzip file designKits-》unzip&#xff0c;选择对应库的压缩包&#xff0c;我这里是&#xff08;TSMC_CRN65GP_v2.zip&#xff09;。 为了…

BHQ 1Mal,BHQ-1 Maleimide,BHQ1马来酰亚胺,黑洞猝灭剂

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ PART1----产品描述&#xff1a; BHQ-1 Maleimide黑洞猝灭剂-1(BHQ-1)被归类为暗猝灭剂&#xff0c;该淬灭剂能够将一定距离内荧光基团发出的光全部吸收&#xff0c;实现对荧光信号的淬灭&#xff0c;所以可得到更强的特异性…

【App管理04-Bug修正 Objective-C语言】

一、咱们刚才已经把这个给大家做完了吧 1.这个Label怎么显示到上面去了, 我们现在是把它加到我们的控制器的View里面吧 我们看一下这个坐标是怎么算的,来,我们找一个坐标, 咱们的坐标,是不是用这个View的frame,减的吧 来,咱们在这里,输出一下这个Frame,看一下吧 在…

2023年第三届能源、电力与电气工程国际会议 (CoEEPE 2023)

会议简介 Brief Introduction 2023年第三届能源、电力与电气工程国际会议(CoEEPE 2023) 会议时间&#xff1a;2023年11月22日-24日 召开地点&#xff1a;澳大利亚墨尔本 大会官网&#xff1a;www.coeepe.org 2023年第三届能源、电力与电气工程国际会议(CoEEPE 2023)由安徽大学、…

Linux:Linux的发展史和作用有哪些?

文章目录 Linux是什么&#xff1f;Linux的开源特征为什么要学习Linux&#xff1f;Linux的应用场景有哪些&#xff1f; Linux是什么&#xff1f; 简单来说&#xff0c;Linux就是操作系统&#xff0c;它和Windows等软件一样&#xff0c;都只是操作系统&#xff0c;并无区别 Linu…

如何将ubuntu LTS升级为Pro

LTS支持周期是5年&#xff1b; Pro支持周期是10年。 Ubuntu Pro专业版笔记 步骤&#xff1a; 打开“软件和更新” 可以看到最右侧的标签是Ubuntu Pro。 在没有升级之前&#xff0c;如果使用下面两步&#xff1a; sudo apt updatesudo apt upgrade 出现如下提示&#xff…

vue 实现课程表甘特图

1 封装 components <template><view style"padding-bottom: 100rpx;"><view class"header flex_sb"><div class"header_list flex" v-for"(item,index) in timeList" :key"item.value"><div&g…

微信小程序——页面跳转方法和场景用法总结

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

如何在APP开发中实现多平台兼容?

随着移动互联网的发展&#xff0c;各大 APP平台也如雨后春笋般崛起&#xff0c;现在市面上主流的 APP平台基本都已经支持 IOS、 Android、 WP等多个平台的开发&#xff0c;但对于一些只想专注于做一款 APP的企业来说&#xff0c;往往只能选择在一个平台开发一个 APP&#xff0c…

opencv hand openpose

使用opencv c 来调用caffemodel 使用opencv 得dnn 模块调用 caffemodel得程序&#xff0c;图片自己输入就行&#xff0c;不做过多得解释&#xff0c;看代码清单。 定义手指关节点 const int POSE_PAIRS[20][2] { {0,1}, {1,2}, {2,3}, {3,4}, // thumb {0,5}, {5,6}, {6,7}…

索引能优化查询,那么谈谈索引的优点和缺点?索引原理

面试必备&#xff1a;索引能优化查询&#xff0c;那么谈谈索引的优点和缺点?索引原理 简述&#xff1a; 优点: 第一&#xff0c;通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。 第二&#xff0c;可以大大加快数据的检索速度&#xff0c;这也是创建…

leetcode刷题常用代码片段

Vscode是常用的开发工具&#xff0c;代码插入能够把常见的代码嵌入智能提醒&#xff0c;减轻了很大的工作量&#xff0c;下面是我刷题的配置&#xff0c;直接复制黏贴到自己的cpp.json里就可以用了 左下角&#xff0c;打开设置&#xff0c;选择用户代码片段&#xff0c;选择自…

idea中Easy Code模版配置

首先找到模版位置 找到使用的模版&#xff0c;我用的是MybatisPlus-H,这是我新建的一个模版 controller.java.vm模版 ##导入宏定义 $!{define.vm}##设置表后缀&#xff08;宏定义&#xff09; #setTableSuffix("Controller")##保存文件&#xff08;宏定义&#xff…

Tensorflow(二)

一、过拟合 过拟合现象:机器对于数据的学习过于自负(想要将误差减到最小)。 解决方法:利用正规化方法 二、卷积神经网络(CNN) 卷积神经网络是近些年来逐渐兴起的人工神经网络&#xff0c;主要用于图像分类、计算机视觉等。 卷积:例如对图片每一小块像素区域的处理&#xff…

利用Stable diffusion Ai 制作艺术二维码超详细参数和教程

大家有没有发现最近这段时间网上出现了各种各样的AI艺术二维码&#xff0c;这种二维码的出现&#xff0c;简直是对二维码的“颠覆式创新”&#xff0c;直接把传统的二维码提升了一个维度&#xff01;作为设计师的我们怎么可以不会呢&#xff1f; 今天就教大家怎么制作这种超有艺…