** 声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章**
感谢泷羽sec 团队的教学
视频地址:安全见闻(1)_哔哩哔哩_bilibili
学无止境,开拓自己的眼界才能走的更远
一、主要的编程语言
通用的编程语言
- C 语言:
- 特点:通用、面向过程、底层控制能力强。
- 应用领域:系统软件开发(如操作系统、编译器)、嵌入式系统开发(如微控制器编程)。
- C++:
- 特点:在 C 语言基础上增加了面向对象特性(如类、继承、多态)。
- 应用领域:游戏开发(如 Unreal Engine、Unity)、高性能计算(如科学计算、金融建模)、大型软件系统开发。
- Java:
- 特点:面向对象、跨平台(通过 Java 虚拟机实现)、自动内存管理。
- 应用领域:企业级应用开发(如 Spring 框架)、Android 应用开发(尽管 Kotlin 也在 Android 开发中占据重要地位)、Web 应用开发(如 Spring Boot)。
- Python:
- 特点:简洁易学、语法灵活、拥有丰富的第三方库和框架。
- 应用领域:数据分析(如 Pandas、NumPy)、人工智能(如 TensorFlow、PyTorch)、Web 开发(如 Django、Flask)、自动化测试与运维。
- JavaScript:
- 特点:动态类型、基于原型的面向对象、事件驱动。
- 应用领域:网页前端开发(如 DOM 操作、AJAX)、服务器端开发(如 Node.js)、移动应用开发(如通过 React Native)。
- C#:
- 特点:由微软开发,与 .NET 框架紧密集成、支持面向对象和泛型编程。
- 应用领域:Windows 桌面应用开发(如 WPF、WinForms)、Web 应用开发(如 ASP.NET)、游戏开发(如 Unity 游戏引擎也支持 C#)。
- Ruby:
- 特点:简洁、优雅、富有表现力,强调开发者的幸福感。
- 应用领域:Web 开发(如 Ruby on Rails 框架)。
- PHP:
- 特点:开源、易于学习、适用于服务器端脚本编程。
- 应用领域:Web 开发(如 WordPress、Laravel 框架)、服务器端脚本编程(如处理表单数据、生成动态网页)。
- Go:
- 特点:高效、简洁、并发编程支持良好(通过 goroutines 和 channels)。
- 应用领域:网络编程(如 HTTP 服务器、微服务架构)、云计算(如 Google Cloud Platform 的基础设施)、系统编程(如操作系统开发)。
- Swift:
- 特点:类型安全、性能优越、易于学习且与现代硬件紧密集成。
- 应用领域:iOS 和 macOS 应用开发(替代了早期的 Objective-C)。
- Kotlin:
- 特点:与 Java 互操作性强、简洁且富有表现力、支持协程(用于异步编程)。
- 应用领域:Android 应用开发(作为 Android 官方推荐的开发语言)。
函数式编程语言
- Haskell:纯函数式语言,以强大的类型系统和数学严谨性著称。
- Lisp:历史悠久,灵活性强,宏系统闻名。
- Clojure:在Java虚拟机上运行的Lisp方言,结合了函数式编程与Java平台的优势。
数据科学和机器学习
- R:在统计分析和数据可视化方面广泛应用。
- Julia:为高性能科学计算和数据分析设计。
Web全栈开发
- TypeScript:JavaScript的超集,增加静态类型检查,提高大型项目开发效率。
移动开发
- Objective-C:曾是iOS开发的主要语言,现在逐渐被Swift取代
嵌入式系统开发
- 汇编语言:针对不同处理器架构,进行底层控制。
其他编程语言
- Pascal:曾在教学和早期软件开发中广泛应用。
- Delphi:基于Object Pascal,快速应用开发。
- Scala:融合面向对象和函数式编程,运行在Java虚拟机上。
- Elixir:基于Erlang虚拟机,适合构建高并发和容错性系统
二、软件程序的类型
软件程序可以分为多个类别:
- Web程序:用于构建网站和Web应用。
- 二进制程序:通常涉及逆向分析和底层开发。
- 驱动程序:控制硬件设备,通常以.sys结尾。
- 脚本程序:如Lua、PHP、Java等,通常用于自动化任务。
- 操作系统:如Windows、macOS、Linux等,属于大型软件系统。
- 裸板程序:在无操作系统的环境下直接编写的代码,如单片机。
三、操作系统的种类
操作系统可以分为实时和非实时操作系统:
- 非实时操作系统:如Windows、macOS、Linux等,注重整体性能和用户体验,但不保证快速响应。
- 实时操作系统(RTOS):如VxWorks、RT-Thread等,能在严格时间限制内完成任务,常用于嵌入式系统和工业控制。
四、硬件设备
计算机硬件包括:
- 中央处理器(CPU):负责执行指令和处理数据。
- 内存:存储正在运行的程序和数据。
- 硬盘:用于长期存储数据。
- 显卡:处理图形和图像数据。
- 主板:连接各种硬件设备。
网络硬件
- 网络服务器:提供服务,如文件存储和Web服务。
- 网络存储设备:如NAS和SAN。
- 网络打印机和网络摄像头:支持共享和视频监控。
移动设备硬件
- 智能手机、平板电脑和可穿戴设备,集成多种功能,性能不断提升。
硬件发展趋势
- 小型化:硬件设备越来越小,更便于携带。
- 高性能:技术进步带来性能不断提升。
- 智能化:硬件设备越来越智能,自动适应用户需求。
- 互联互通:硬件之间的互联越来越紧密,形成庞大的物联网。
五、网络类型
局域网(LAN)
局域网覆盖范围较小,通常在一个建筑物或校园内。例如,公司办公室内的网络用于员工之间共享文件、打印机等资源。局域网的特点是高速度和低延迟。
城域网(MAN)
城域网覆盖范围较大,通常在一个城市内。例如,城市的有线电视网络和宽带网络。城域网连接多个局域网,为更广泛的用户提供服务。
广域网(WAN)
广域网覆盖范围非常广,可以跨越国家和地区。互联网就是一个典型的广域网,它连接了全球各地的计算机和网络设备,支持各种数据传输。
六、网络协议
TCP/IP 协议
TCP/IP是互联网的基础协议,包含传输控制协议(TCP)和网际协议(IP)。TCP负责数据的可靠传输,而IP则负责数据的路由和寻址。
HTTP 协议
超文本传输协议(HTTP)用于在Web浏览器和Web服务器之间传输超文本数据,如网页、图片和视频。
HTTPS 协议
HTTPS(超文本传输安全协议)是用于在计算机网络上进行安全通信的协议。它是 HTTP(超文本传输协议)的安全版本,通过在应用层与传输层之间增加安全层(SSL/TLS)来实现数据的加密、完整性和身份验证。
FTP 协议
文件传输协议(FTP)用于在计算机之间传输文件,支持多种文件操作。
电子邮件协议
- SMTP:用于发送电子邮件。
- POP3和IMAP:用于接收电子邮件,支持离线和在线访问。
七、网络设备
路由器
路由器连接不同的网络,实现数据转发。它根据IP地址和路由表来确定数据的传输路径,确保信息能够高效传达。
交换机
在局域网中,交换机连接多台计算机,实现数据的快速交换。它根据MAC地址转发数据帧,提高网络效率。
网卡
网卡安装在计算机上,用于连接网络。它将计算机的数据转换为网络信号进行传输,并接收来自网络的信号。
无线接入点(AP)
无线接入点提供无线网络连接,使无线设备能够接入局域网或广域网,扩展网络覆盖范围。
八、网络安全
确保网络安全是保护数据和资源的关键。主要的网络安全措施包括:
防火墙
防火墙用于保护网络免受外部攻击,通过预设规则过滤网络流量,阻止可疑活动。
加密技术
加密技术对数据进行加密,以防止数据在传输过程中被窃取或篡改。例如,SSL/TLS协议用于在Web浏览器和Web服务器之间进行加密通信。
身份认证
身份认证确保只有授权用户能够访问网络资源。常见的身份认证方式有用户名和密码、数字证书和生物识别技术。
九、人工智能与机器学习
在网络安全领域,人工智能和机器学习正被广泛应用于数据分析和威胁检测。
工作流程
** 1、数据收集**
a、来源:可从数据库、文件、传感器和网络等多种渠道获取数据。 b、类型:包括结构化数据、半结构化数据和非结构化数据。 2、 数据预处理 a、数据清洗:去除噪声数据、处理缺失值和纠正错误数据。 b、数据归一化:将特征值缩放到特定范围,以提高算法性能。 c、特征提取:从原始数据中提取有用特征,帮助算法更好地处理数据。
** 3、模型选择与训练**
a、根据任务类型和数据特点选择合适的机器学习算法,并将数据分为训练集和测试集。 b、使用训练集对模型进行训练,调整参数以最小化损失函数。
** 4、模型评估与优化**
a、使用测试集评估模型性能,调整参数或更换算法以优化结果。
** 5、 模型应用**
b、将优化后的模型应用于实际问题,如预测和分类,并进行监控和评估。
十、深度学习基础
深度学习的基本原理主要包括以下几个方面:
神经网络基础
- 神经元模型:深度学习的基础是人工神经网络,灵感来源于生物神经系统。神经元接收多个输入信号,通过加权求和和激活函数输出结果。
多层神经网络
- 深度学习中的神经网络通常由多个层次组成,包括输入层、隐藏层和输出层。输入层接收原始数据,隐藏层进行特征提取,输出层产生最终预测结果。
总结
- 在网络安全领域,了解编程语言的特点、软件程序的类型以及硬件的安全需求至关重要。编程语言是网络安全领域的重要基础。不同的编程语言适用于不同的安全需求,无论是开发安全工具、进行渗透测试还是编写安全漏洞利用代码,掌握一种或者多种编程语言和技术将帮助安全从业者在复杂的技术环境中游刃有余。理解事物的本质,才能有效应对日益变化的网络安全挑战。
- 网络类型、协议、设备和安全措施构成了现代网络的基础。在网络安全领域,理解这些要素,有助于保护数据和资源。随着人工智能和深度学习技术的发展,网络安全的未来将更加智能化和自动化。掌握这些技术,将为应对复杂的安全挑战提供强有力的支持。
版权归原作者 茶颜悦色vv 所有, 如有侵权,请联系我们删除。