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

网络安全 加密编码进制

目录

1.密码储存加密

1. MD5(消息摘要算法5)

2. SHA-1(安全哈希算法1)

3. NTLM(NT LAN Manager)

4. AES(高级加密标准)

5. DES(数据加密标准)

6. RC4(Rivest Cipher 4)

2.传输数据编码

1. BASE64 编码

2. URL 编码(百分号编码)

3. HEX 编码(十六进制编码)

4. ASCII 编码(美国信息交换标准代码)

总结

3.JS前端代码加密

1. JS 前端代码加密

2. JS 颜文字

3. Jother

4. JSFUCK

总结

 4.后端代码加密

1. PHP 代码加密

1.1 代码混淆

1.2 字节码加密

2. .NET 代码加密

2.1 代码混淆

2.2 代码加密

3. Java 代码加密

3.1 代码混淆

3.2 字节码加密

总结

5.数据库密文加密

1. 加密算法选择

2. 密文存储方式

3. 密钥管理

4. 加密和解密操作

5. 最佳实践

6. 数据库支持

总结

 


1.密码储存加密

1. MD5(消息摘要算法5)

  • 概述:MD5 是由 Ronald Rivest 在1991年设计的一种哈希算法。它将任意长度的数据输入转换为一个128位(16字节)的固定长度散列值。MD5 以其速度快、实现简单而广受欢迎,早期用于文件完整性校验、数字签名、以及密码存储。
  • 安全性问题
    • 碰撞攻击:2004年发现,攻击者可以通过构造不同的输入数据生成相同的 MD5 哈希值(碰撞),使得 MD5 不再安全。
    • 彩虹表攻击:由于 MD5 生成的散列值较短,攻击者可以使用预计算的彩虹表轻松逆向破解密码。
  • 现状:由于安全漏洞的暴露,MD5 已不再推荐用于密码存储和任何需要高安全性的场景。

2. SHA-1(安全哈希算法1)

  • 概述:SHA-1 是由美国国家安全局(NSA)设计,并由 NIST 作为数字签名算法的标准发布。它将输入消息转换为160位(20字节)的哈希值。SHA-1 曾被广泛用于数字签名、证书、以及数据完整性验证。
  • 安全性问题
    • 碰撞攻击:2017年,Google 和荷兰国家研究机构成功演示了 SHA-1 的碰撞攻击,进一步证实其安全性不足。
    • 破解速度:相较于更强的哈希算法(如 SHA-256),SHA-1 被认为更容易遭受攻击。
  • 现状:SHA-1 已被广泛弃用,尤其是在安全敏感的应用中,如 SSL/TLS 证书签名和密码哈希。

3. NTLM(NT LAN Manager)

  • 概述:NTLM 是微软为 Windows 网络身份验证设计的协议。NTLM 包括两部分:哈希算法(基于 MD4 的哈希)和挑战响应机制,用于验证用户凭证。
  • 安全性问题
    • 加密强度不足:NTLM 使用的哈希算法和挑战响应机制被认为不够安全,容易受到字典攻击、彩虹表攻击、以及中间人攻击。
    • 使用限制:NTLM 不能有效抵御重放攻击,并且在跨域环境下,其安全性问题更加明显。
  • 现状:NTLM 逐渐被微软弃用,现代 Windows 系统更推荐使用 Kerberos 进行身份验证。NTLM 仅用于兼容旧系统,不建议在新系统中使用。

4. AES(高级加密标准)

  • 概述:AES 是美国国家标准技术研究所(NIST)于2001年发布的对称加密标准。AES 支持 128、192 和 256 位密钥长度,使用多轮(10、12 或 14 轮)加密过程,确保数据加密的强度。
  • 优点
    • 高安全性:AES 被认为是非常安全的对称加密算法,目前广泛用于各种数据加密场景,如文件加密、通信加密、以及硬盘加密。
    • 速度与效率:AES 的实现通常在硬件中加速,因此可以在资源有限的环境下实现高效加密。
  • 适用性:AES 适用于存储和传输的敏感数据加密,但在密码存储时通常结合 PBKDF2、bcrypt 或 scrypt 等密钥派生函数使用,以增加破解难度。

5. DES(数据加密标准)

  • 概述:DES 是由 IBM 在1970年代设计,并由 NIST 作为对称加密标准发布。DES 使用 56 位密钥,加密数据时通过 16 轮的 Feistel 结构处理。
  • 安全性问题
    • 密钥长度过短:56 位的密钥长度使得 DES 易于被暴力破解。1999年,电子前沿基金会(EFF)使用专门的硬件成功在短时间内破解 DES。
    • 易受线性密码分析和差分密码分析攻击
  • 现状:DES 被认为不再安全,已经被 3DES(三重 DES)和 AES 取代。

6. RC4(Rivest Cipher 4)

  • 概述:RC4 是由 Ronald Rivest 在1987年设计的一种流加密算法。RC4 使用一个可变长度的密钥生成一个伪随机序列,然后与数据进行按位异或运算。
  • 安全性问题
    • 密钥流问题:RC4 的初始密钥流不够随机,导致了许多攻击方法能够推断出部分密钥或明文。
    • 已知漏洞:RC4 的安全漏洞被广泛研究,尤其在无线网络的 WEP 和 WPA 协议中,这些漏洞使得 RC4 容易受到攻击。
  • 现状:RC4 逐渐被淘汰,现代协议(如 TLS)已经明确禁止使用 RC4。

2.传输数据编码

1. BASE64 编码

  • 概述:BASE64 是一种基于 64 个字符的编码方法,常用于将二进制数据编码为文本字符串。这些字符包括字母大小写(A-Z, a-z)、数字(0-9)、加号(+)、斜杠(/),以及用于填充的等号(=)。
  • 用途
    • 数据传输:BASE64 常用于在电子邮件、XML 和 JSON 等格式中传输二进制数据,如图像、音频、或文件。
    • 数据存储:用于将二进制数据转换为文本格式以便存储在数据库或配置文件中。
  • 优点:简单、易于实现,能够在各种文本协议中安全传输数据。
  • 缺点:由于每 3 字节二进制数据被编码为 4 字节文本,BASE64 编码的文本比原始数据大约增大了 33%。

2. URL 编码(百分号编码)

  • 概述:URL 编码,也称为百分号编码,是一种将 URL 中的特殊字符编码为符合 RFC 3986 标准的格式的方法。它将不可见字符、空格、以及特殊符号转换为“%”后跟两位十六进制数表示的 ASCII 码。
  • 用途
    • URL 安全传输:确保 URL 在浏览器、服务器和应用之间传递时,不会因特殊字符而导致解析错误。例如,空格被编码为 %20,而 & 被编码为 %26
    • 表单数据传输:在 Web 表单中,数据通过 GET 或 POST 方法传输时,通常使用 URL 编码来处理特殊字符。
  • 优点:确保 URL 中的所有字符均能被正确解释和传输。
  • 缺点:编码后的 URL 可能变得较长,且不易于人类阅读。

3. HEX 编码(十六进制编码)

  • 概述:HEX 编码是将二进制数据转换为十六进制数表示的编码方法。每个字节(二进制的 8 位)被转换为两个十六进制字符,范围从 00 到 FF。
  • 用途
    • 数据表示:HEX 编码常用于表示二进制数据的文本格式,如 MAC 地址、加密哈希值、或调试输出。
    • 调试和日志记录:在调试和日志记录中,HEX 编码有助于清晰地查看和分析二进制数据。
    • 数据传输:用于需要在文本环境中传输二进制数据的场景。
  • 优点:每个字节都准确表示为两个字符,直观且易于阅读和分析。
  • 缺点:与原始二进制数据相比,编码后的数据长度翻倍,占用更多存储和带宽。

4. ASCII 编码(美国信息交换标准代码)

  • 概述:ASCII 是一种字符编码标准,使用 7 位或 8 位的数字编码来表示文本字符。标准 ASCII 使用 7 位来表示 128 个字符(包括控制字符),扩展 ASCII 使用 8 位表示 256 个字符。
  • 用途
    • 文本文件:ASCII 是早期计算机系统和通信设备的主要字符编码标准,广泛用于纯文本文件和协议中。
    • 数据传输:在一些简单的通信协议中,ASCII 编码用于传输文本数据。
    • 基础编码:其他编码(如 UTF-8)在处理英文字符时,依然基于 ASCII 编码。
  • 优点:简洁且兼容性强,适合表示英语及一些控制字符。
  • 缺点:仅支持有限的字符集,不适合表示复杂字符(如非拉丁字符集)。

总结

  • BASE64 编码:用于在文本格式中传输二进制数据,增加数据长度约 33%。
  • URL 编码:用于将 URL 中的特殊字符转换为百分号编码格式,确保 URL 的安全传输。
  • HEX 编码:将二进制数据转换为直观的十六进制字符表示,便于调试和数据分析。
  • ASCII 编码:历史悠久的文本编码标准,适用于表示基础的英文字母和控制字符。

这些编码方式各有其用途,选择合适的编码方式取决于具体的应用场景和数据类型。

3.JS前端代码加密

1. JS 前端代码加密

  • 概述:所谓“JS 前端代码加密”实际上通常指的是JavaScript 代码混淆。混淆代码会使代码变得难以理解,通过替换变量名、删除空白、压缩代码等方式,使得人类阅读时变得非常困难。
  • 工具
    • UglifyJS:一个流行的 JavaScript 压缩和混淆工具。它可以删除不必要的字符(如空格和注释),缩短变量名,从而使代码变得更难阅读。
    • Terser:UglifyJS 的后继者,功能更强大,支持更现代的 JavaScript 语法和特性。
    • JavaScript Obfuscator:一个专门的混淆工具,通过更复杂的混淆算法使代码几乎不可读,同时仍然保持功能正常。
  • 优点:增加代码的难读性,防止低水平的代码窃取或篡改。
  • 缺点:混淆后的代码仍然可以通过还原工具解码,且会增加代码的体积和解析时间。

2. JS 颜文字

  • 概述:JS 颜文字指的是使用 Unicode 颜文字(例如: ٩(◕‿◕。)۶)或特殊符号在 JavaScript 代码中嵌入,使代码看起来更加有趣或难以理解。这种方法通常出现在恶搞或迷惑性的代码片段中。
  • 使用方式
    • 注释中使用:可以在代码的注释部分加入颜文字,以增加趣味性或混淆效果。
    • 作为变量名:某些情况下,开发者可以利用颜文字作为变量名或函数名,这虽然合法,但极度混淆了代码的可读性。
  • 优点:主要是娱乐性强或用于展示代码的创意,能让代码显得有趣或非常“混乱”。
  • 缺点:对代码的功能没有实际影响,只是增加了阅读的难度,容易影响代码的可维护性。

3. Jother

  • 概述Jother 是一种较少见的 JavaScript 混淆方式,它使用了一种基于替代字符的编码方法,将标准的 JavaScript 代码转化为一种难以理解的形式。虽然不如 JSFUCK 那么著名,但 Jother 仍然是一种用于迷惑代码的工具。
  • 工作原理
    • Jother 通常通过替换常见的 JavaScript 字符或语法,生成一种类似于垃圾字符的代码,避免普通的分析工具轻易解析出原始代码。
  • 优点:增加代码的混淆性,使代码更难逆向工程。
  • 缺点:不如其他流行的混淆工具那么常见,因此可能存在兼容性问题。

4. JSFUCK

  • 概述JSFUCK 是一种极端的 JavaScript 混淆方式,它只使用六个字符来编写完整的 JavaScript 代码:[ ] ( ) ! +。这些字符的组合可以生成所有可能的 JavaScript 语句和表达式。
  • 工作原理
    • 利用 JavaScript 的类型转换机制和基本运算符的特性,JSFUCK 可以将任何 JavaScript 代码转化为一串非常难以理解的字符组合。
    • 例如,alert('Hello World!') 可以用 JSFUCK 表示为极其复杂的字符组合,几乎不可读。
  • 优点JSFUCK 代码几乎不可读,是一种非常有效的代码混淆手段。
  • 缺点
    • 性能问题JSFUCK 代码的执行效率低下,因为它将简单的操作转化为复杂的字符组合和运算。
    • 维护性差:混淆后的代码难以调试和维护,几乎不可逆转。

总结

  • JS 前端代码加密:通常指代码混淆,通过工具减少代码可读性,但仍可被解码。
  • JS 颜文字:使用颜文字或特殊符号混淆代码,主要用于娱乐或增加阅读难度。
  • Jother:一种基于字符替代的混淆方法,不如其他工具常见但依然有效。
  • JSFUCK:极端混淆方式,仅使用六个字符生成完整代码,非常难以理解但性能差。

 4.后端代码加密

1. PHP 代码加密

PHP 是一种解释型语言,代码通常以纯文本形式存在于服务器端,这使得它在部署时容易被暴露。因此,PHP 代码加密或混淆对于保护源码尤为重要。

1.1 代码混淆

代码混淆的主要目的是通过改变代码的结构、变量名、函数名等,使其变得难以阅读和理解,但仍然可以正常执行。

  • 工具

    • PHP Obfuscator:这是一个专门用于混淆 PHP 代码的工具,它可以通过改变变量名、删除空格和注释等方式,将代码转换为一种非常难以理解的形式。
    • php-obfuscator:一个开源的混淆工具,可以进行多种混淆操作,如重命名变量和函数、压缩代码等。
  • 示例

    • 原始代码:
      function calculateSum($a, $b) { 
          return $a + $b; 
      } 
      echo calculateSum(5, 10);

    在复杂混淆中,代码可能变得更加不可读,甚至包括多余的逻辑或加密字符串。

  • 混淆后的代码可能变成:
    function a($b, $c) {
         return $b + $c; 
    } 
    echo a(5, 10);

  • 优缺点

    • 优点:混淆后的代码难以被人类阅读,简单的逆向工程工具很难还原原始代码。
    • 缺点:混淆无法完全防止代码被解密,且可能导致代码维护性降低。
1.2 字节码加密

通过将 PHP 源代码编译为字节码并加密,可以有效地保护代码不被直接访问和理解。

  • 工具

    • ionCube Loader:ionCube 提供了一个编译器,将 PHP 源代码编译为字节码,并将其加密。加密后的文件只能在安装了 ionCube Loader 的服务器上运行。
    • Zend Guard:Zend Guard 是另一个流行的 PHP 代码保护工具,除了混淆外,它还可以加密 PHP 文件并提供许可管理功能。
  • 示例

    • 使用 ionCube 对 PHP 文件进行加密后,代码将被转换为一种只有 ionCube Loader 能够解密和执行的字节码格式。原始的 PHP 代码不会被直接暴露。
  • 优缺点

    • 优点:相比单纯的混淆,字节码加密的安全性更高,直接读取源码几乎不可能。
    • 缺点:需要服务器环境支持相应的解密加载器,部署复杂性增加,且可能影响性能。

2. .NET 代码加密

.NET 框架使用的是中间语言 (IL),这使得编译后的代码比较容易反编译成接近源代码的形式。因此,代码加密通常涉及 IL 的混淆和加密。

2.1 代码混淆

通过混淆工具对 IL 进行处理,使得反编译后的代码难以理解。

  • 工具

    • Dotfuscator:一个功能强大的 .NET 代码混淆工具,可以通过重命名类、方法和变量,添加虚假的控制流,插入无效代码等方式混淆代码。
    • ConfuserEx:一个开源的 .NET 混淆器,支持多种混淆技术,如字符串加密、方法重命名、控制流混淆等。
    • SmartAssembly:这是另一个常用的混淆工具,除了基本的混淆功能外,还提供代码修复、报告和压缩功能。
  • 示例

    • 原始代码:
      public class Calculator { 
          public int Add(int x, int y) 
          { 
              return x + y;
           } 
      }
    • 混淆后的代码:
      public class a { 
          public int b(int c, int d) { 
              return c + d; 
          } 
      }

    高级混淆可能会添加无效代码和多余的逻辑,进一步使反编译后的代码难以理解。

  • 优缺点

    • 优点:显著增加了代码的逆向工程难度,使得反编译后的代码难以理解和重新使用。
    • 缺点:混淆工具需要精心配置,以避免在运行时引入错误。
2.2 代码加密

除了混淆外,还可以对 IL 进行加密,以进一步增强安全性。

  • 工具

    • DotfuscatorSmartAssembly 这类工具通常也提供加密功能,将 IL 加密,并在运行时解密执行。
    • SecureTeam .NET Reactor:一个专门的 .NET 代码保护工具,提供了强大的代码加密功能,防止 IL 被反编译。
  • 示例

    • 使用加密工具加密后的 .NET 程序,其 IL 代码会被加密,反编译工具无法直接读取到明文的 IL 内容。
  • 优缺点

    • 优点:加密后的代码即使被反编译工具处理,也无法直接获取有用的信息。
    • 缺点:需要解密过程可能增加运行时的性能开销。

3. Java 代码加密

Java 程序编译为字节码(.class 文件)后运行于 JVM 上,由于字节码相对容易反编译,Java 代码加密主要包括字节码混淆和加密。

3.1 代码混淆

Java 代码混淆通过修改字节码结构,使得反编译后的代码难以理解和使用。

  • 工具

    • ProGuard:一个开源的 Java 代码混淆工具,可以对 Java 字节码进行压缩、优化和混淆处理。它可以重命名类、字段和方法,删除未使用的代码,插入虚假的控制流。
    • Allatori:一个商业的 Java 混淆器,支持多种混淆技术,如字符串加密、序列化数据加密、控制流混淆等。
    • Zelix KlassMaster (ZKM):一个强大的混淆工具,提供高级的混淆和加密功能,广泛用于保护 Java 应用。
  • 示例

    • 原始代码:
      public class Calculator { 
          public int add(int a, int b) {     
              return a + b; 
          } 
      }

    • 混淆后的代码:
      public class a { 
          public int b(int c, int d) { 
              return c + d; 
          } 
      }

    高级混淆可能会将代码的逻辑变得更加复杂,使得反编译后的代码更难以理解。

  • 优缺点

    • 优点:有效阻止反编译工具获取有用的代码结构信息,大大增加逆向工程的难度。
    • 缺点:同样,复杂的混淆可能导致代码运行时问题,并增加调试难度。
3.2 字节码加密

通过将字节码加密,保护 Java 程序的核心逻辑。

  • 工具

    • Excelsior JET:一个 Java 到本地代码的编译器,可以将 Java 字节码编译为原生的可执行文件,并加密字节码部分,提供更高的安全性。
    • JavaGuard:一个简单的 Java 字节码加密工具,可以保护 Java 类文件免受反编译攻击。
  • 示例

    • 加密后的 Java 程序,其字节码不再以可读的形式存在,反编译工具也无法还原代码结构。
  • 优缺点

    • 优点:加密后的字节码极难反编译,保护了核心算法和逻辑。
    • 缺点:加密过程复杂,可能导致程序运行效率降低。

总结

  • PHP

    • 代码混淆:简单有效,但安全性有限。
    • 字节码加密:安全性较高,部署复杂,影响性能。
  • .NET

    • 代码混淆:通过 IL 混淆显著增加反编译难度。
    • 代码加密:结合混淆和加密进一步增强安全性,可能影响性能。
  • Java

    • 代码混淆:广泛使用的保护方法,效果显著。
    • 字节码加密:安全性高,可以防止反编译,但有性能开销。

在后端开发中,选择合适的代码保护方案需要考虑安全性、性能影响、部署复杂性以及代码的可维护性。代码混淆是常用的第一道防线,而字节码加密则为需要更高安全性的应用提供了更强的保护。最终的选择应根据具体项目的需求和风险评估来决定。

5.数据库密文加密

数据库密文加密是指在数据库中存储加密后的数据,以确保即使数据库被攻击或泄露,攻击者也无法轻易获取有价值的信息。密文加密通常用于保护敏感数据,如用户密码、个人信息、信用卡号等。以下是数据库密文加密的详细介绍:

1. 加密算法选择

  • 对称加密算法:使用相同的密钥进行加密和解密。常见的对称加密算法包括:

    • AES (Advanced Encryption Standard):AES 是一种非常安全且常用的对称加密算法,支持 128、192、256 位密钥。广泛用于数据加密和保护敏感信息。
    • DES (Data Encryption Standard):DES 是一种老旧的加密算法,使用 56 位密钥,但由于其安全性较低,已逐渐被弃用。
    • 3DES (Triple DES):3DES 是 DES 的增强版本,通过三次加密提高安全性,但由于性能较差,逐渐被 AES 取代。
  • 非对称加密算法:使用一对密钥(公钥和私钥)进行加密和解密。常见的非对称加密算法包括:

    • RSA:广泛用于安全通信和数据保护,适合加密小数据块或用于密钥交换。
    • ECC (Elliptic Curve Cryptography):一种基于椭圆曲线数学的加密算法,提供更高的安全性和更小的密钥尺寸。

2. 密文存储方式

  • 全字段加密 (Field-level Encryption):对数据库中的某些特定字段进行加密。适用于需要保护敏感信息的特定数据,如社会保险号、信用卡号等。

    • 优点:精确控制哪些数据需要加密,减少不必要的性能开销。
    • 缺点:需要对数据库结构和应用逻辑进行调整,增加开发和维护成本。
  • 全盘加密 (Full Disk Encryption):对整个数据库或存储盘进行加密,确保所有数据在存储介质上都是加密的。

    • 优点:实现简便,无需更改数据库结构或应用代码。
    • 缺点:如果攻击者获得了解密密钥,所有数据都可能被泄露。此方法通常用于保护数据存储介质的物理安全,而不是防止数据库级别的攻击。

3. 密钥管理

  • 密钥管理系统 (Key Management System, KMS):密钥管理是数据库加密中最关键的一环。一个好的密钥管理系统应确保密钥的生成、存储、分发和销毁的安全性。
    • 云 KMS:如 AWS KMS、Google Cloud KMS 等,提供了方便的密钥管理服务,集成度高,安全性有保障。
    • 本地 KMS:自建或使用第三方解决方案(如 HashiCorp Vault)进行密钥管理,适用于对密钥控制要求更高的场景。

4. 加密和解密操作

  • 加密操作

    • 在数据插入或更新时,应用程序将数据加密后再存储到数据库中。通常在应用程序层实现,通过调用加密库(如 OpenSSL、BouncyCastle)来执行加密操作。
    • 例如,在存储信用卡号时,可以使用 AES 进行加密:
      $encryptedData = openssl_encrypt($plainTextData, 'AES-256-CBC',
       $encryptionKey, 0, $iv);
  • 解密操作

    • 在读取数据时,应用程序从数据库中获取加密数据并进行解密操作,然后将解密后的明文数据呈现给用户或用于进一步处理。
    • 例如,解密信用卡号时:
      $decryptedData = openssl_decrypt($encryptedData, 'AES-256-CBC', 
      $encryptionKey, 0, $iv);

5. 最佳实践

  • 使用盐值 (Salting):在对数据进行加密(特别是哈希操作时,如密码加密)前,先对数据添加随机盐值,以防止彩虹表攻击。
  • 分区密钥 (Partitioned Keys):对于大型数据库,使用不同的密钥来加密不同的数据部分,以减少单一密钥泄露的风险。
  • 定期轮换密钥 (Key Rotation):定期更换加密密钥,减少密钥泄露后造成的损失。
  • 最小化明文数据暴露:尽量减少数据在明文状态下的处理时间,将加密和解密操作限制在最小范围内。

6. 数据库支持

现代数据库系统往往内置了加密支持,或者与第三方加密库兼容,以下是一些常见的数据库及其加密支持:

  • MySQL / MariaDB
    • 支持表级和列级的加密功能,使用 AES 算法。
    • InnoDB 支持数据存储加密,结合密钥管理插件(如 Vault)实现安全的密钥管理。
  • PostgreSQL
    • 支持透明数据加密(TDE)和通过扩展实现的字段级加密。
    • 可通过 pgcrypto 扩展提供的加密函数对敏感数据进行加密。
  • Microsoft SQL Server
    • 提供全面的加密支持,包括 Transparent Data Encryption (TDE)、Always Encrypted、以及动态数据掩码。
    • 支持在存储数据前进行加密,和在内存中解密,确保数据在传输和存储过程中都得到保护。
  • Oracle Database
    • 提供强大的加密功能,包括 Transparent Data Encryption (TDE)、列级加密,以及 Oracle Key Vault 进行密钥管理。

总结

数据库密文加密是保护敏感数据的重要措施。选择合适的加密算法、密钥管理策略和加密方法,可以有效降低数据泄露的风险。数据库密文加密的实现需要平衡安全性、性能和操作复杂性,以确保数据既安全又高效地被存储和访问。

 


http://www.kler.cn/a/290078.html

相关文章:

  • Appium配置2024.11.12
  • GxtWaitCursor:Qt下基于RAII的鼠标等待光标类
  • CentOS 服务
  • DOM 规范 — MutationObserver 接口
  • 【 ElementUI 组件Steps 步骤条使用新手详细教程】
  • 数据结构与算法-前缀和数组
  • 网络安全硬件
  • 区块链Hyperledger Fabric2.2 环境搭建
  • IPSec 参数
  • LeetCode 热题100-64 搜索二维矩阵
  • Spark的Web界面
  • 20240831-PostgreSQL小课持续更新
  • Unity(2022.3.41LTS) - UI详细介绍-Dropdown(下拉列表)
  • 《机器学习》周志华-CH4(决策树)
  • (六)进入MySQL 【MySQL高阶语句】
  • Oracle 和 PostgreSQL 主从对比介绍
  • 基于SpringBoot的校园闲置物品交易管理系统
  • 【linux】Cannot find a valid baseurl for repo: base/7/x86_64、linux常见的命令
  • docker实战基础四(如何在容器中调试和排查运行问题)
  • RFID光触发标签与端口自检功能新型光交箱哑资源管理方案
  • 基于深度学习的植物虫害检测
  • UDP报文结构
  • 【机器学习】集成学习的基本概念、Bagging和Boosting的区别以及集成学习方法在python中的运用(含python代码)
  • Python集成学习和随机森林算法使用详解
  • HarmonyOS开发实战( Beta5版)Stack组件实现滚动吸顶效果实现案例
  • 第86集《大佛顶首楞严经》