10 2023 档案

摘要:要查找一个数组中的第 K 大元素,有多种方法可以实现,其中常用的方法是使用分治算法或快速选择算法,这两种方法的时间复杂度到时候O(n)。 快速选择算法示例: package main import "fmt" func findKthLargest(nums []int, k int) int { 阅读全文
posted @ 2023-10-31 17:11 落雷 阅读(516) 评论(2) 推荐(2) 编辑
摘要:在 Go 语言中,虽然没有经典的面向对象编程中的继承和多态的概念,但你可以通过接口(interface)来实现多态性。Go 语言鼓励组合和接口多态,这使得代码更加灵活和模块化。下面将详细介绍 Go 语言中如何实现多态。 多态性是面向对象编程的一个核心概念,它允许不同类型的对象在一致的接口下执行不同的 阅读全文
posted @ 2023-10-26 13:37 落雷 阅读(669) 评论(0) 推荐(1) 编辑
摘要:RA 功能简介 在公共密钥基础设施(PKI)中,CA(Certificate Authority,证书颁发机构)系统的RA(Registration Authority,注册机构)是PKI体系结构的重要组成部分。RA在CA系统中扮演着关键角色,负责处理用户的身份验证和注册请求,然后将这些请求传递给C 阅读全文
posted @ 2023-10-25 10:20 落雷 阅读(330) 评论(0) 推荐(0) 编辑
摘要:CSR,全称Certificate Signing Request(证书签发请求),是一种包含了公钥和与主题(通常是实体的信息,如个人或组织)相关的其他信息的数据结构。CSR通常用于向证书颁发机构(Certificate Authority,CA)申请数字证书。下面是CSR的详细介绍: CSR 的结 阅读全文
posted @ 2023-10-23 09:16 落雷 阅读(2062) 评论(0) 推荐(1) 编辑
摘要:Go的map是一种高效的数据结构,用于存储键值对。其底层实现是一个哈希表(hash table),下面是有关map底层实现的详细介绍: 哈希表: map的底层实现是一个哈希表,也称为散列表。哈希表是一个数组,其中每个元素被称为"桶",用于存储键值对。 哈希表的大小是可动态调整的,当存储的键值对数量达 阅读全文
posted @ 2023-10-22 15:35 落雷 阅读(205) 评论(0) 推荐(0) 编辑
摘要:1. x.509 简介 X.509是一种公共密钥基础设施(PKI)标准,用于证书的格式、结构和管理。X.509证书是用于数字身份验证、数据加密和数字签名的关键组件。以下是X.509证书的详细介绍: 1.1 证书结构 X.509证书是一种包含数字身份信息的数据结构,通常由以下元素组成: 版本号(Ver 阅读全文
posted @ 2023-10-22 10:18 落雷 阅读(353) 评论(0) 推荐(0) 编辑
摘要:1. 常见对称加解密算法 对称加密算法是一种加密算法,使用相同的密钥来加密和解密数据。这些算法在保护数据安全性方面起着重要作用。下面是一些常用的对称加密算法的介绍: 1.1 Advanced Encryption Standard (AES) 简介: AES 是一种高级加密标准,用于保护敏感数据。它 阅读全文
posted @ 2023-10-21 10:02 落雷 阅读(282) 评论(0) 推荐(0) 编辑
摘要:简介 Go语言中的切片(slice)是一种灵活的数据结构,它构建在数组之上并提供了方便的方式来操作数组的一部分。切片的底层实现涉及到数组和一些元数据。以下是Golang切片的底层实现的详细介绍: 底层数组(Underlying Array): 切片是建立在一个底层数组之上的。这个数组通常比切片的容量 阅读全文
posted @ 2023-10-20 14:50 落雷 阅读(145) 评论(0) 推荐(0) 编辑
摘要:SM2 SM2 国密SM2算法是中国国家密码管理局(CNCA)发布的一种非对称加密算法。它采用椭圆曲线密码体系(Elliptic Curve Cryptography,ECC)进行密钥交换、数字签名和公钥加密等操作。以下是SM2算法的主要特点和步骤: 特点: 安全性高: SM2基于椭圆曲线离散对数难 阅读全文
posted @ 2023-10-19 17:17 落雷 阅读(2745) 评论(0) 推荐(1) 编辑
摘要:1. 什么是缓存雪崩 当我们提到缓存系统中的问题,缓存雪崩是一个经常被讨论的话题。缓存雪崩是指在某一时刻发生大量的缓存失效,导致瞬间大量的请求直接打到了数据库,可能会导致数据库瞬间压力过大甚至宕机。尤其在高并发的系统中,这种情况会导致连锁反应,整个系统可能会崩溃。 1.1 缓存雪崩的成因 大量缓存同 阅读全文
posted @ 2023-10-18 11:07 落雷 阅读(1284) 评论(2) 推荐(2) 编辑
摘要:PKI系统简介 PKI(Public Key Infrastructure,公钥基础设施)是一种密码学框架,用于安全地管理数字证书、公钥和私钥,以确保通信和数据的机密性、完整性和身份验证。PKI建立在公钥密码学的基础上,通过数字证书颁发机构(CA)和相关组件来实现安全通信和身份验证。以下是对PKI体 阅读全文
posted @ 2023-10-16 08:57 落雷 阅读(350) 评论(0) 推荐(0) 编辑
摘要:密码学在信息安全中扮演着至关重要的角色。为了保护敏感信息、数字身份和网络通信的安全性,密码设备(如硬件安全模块HSM)与应用程序之间的安全通信和互操作性变得至关重要。PKCS#11(Public-Key Cryptography Standards #11)是一个密码学标准系列,定义了密码设备和应用 阅读全文
posted @ 2023-10-14 08:11 落雷 阅读(2669) 评论(0) 推荐(0) 编辑
摘要:思考 开始之前,先考虑下下面的代码的执行结果: package main import "fmt" func test() int { i := 0 defer func() { fmt.Println("defer1") }() defer func() { i += 1 fmt.Println( 阅读全文
posted @ 2023-10-13 11:27 落雷 阅读(354) 评论(1) 推荐(1) 编辑
摘要:1. solidity 简介 Solidity(中文名称:Solidity 语言)是一种面向智能合约(Smart Contracts)的高级编程语言,最初由以太坊(Ethereum)的团队开发并用于以太坊平台上的智能合约编写。Solidity 的设计目标是简化以太坊智能合约的开发,使开发者能够创建安 阅读全文
posted @ 2023-10-11 11:10 落雷 阅读(1648) 评论(0) 推荐(0) 编辑
摘要:Makefile 是一个非常强大的构建自动化工具,用于管理项目的编译、链接和其他构建任务。以下是一个详细的 Makefile 使用文档,包括基本概念、语法、示例和常见任务。 1. 基本概念 目标 (Targets):在 Makefile 中,目标是要生成的文件或执行的操作的名称。目标可以是文件名,也 阅读全文
posted @ 2023-10-10 09:21 落雷 阅读(670) 评论(0) 推荐(4) 编辑
摘要:1. Gossip协议基础 1.1 什么是分布式系统 分布式系统(Distributed System)是由多台计算机或计算节点组成的计算机系统,这些计算节点通过网络连接在一起,并协同工作以完成共同的任务或提供服务。与单一计算机系统不同,分布式系统中的计算节点可以分布在不同的地理位置。 以下是分布式 阅读全文
posted @ 2023-10-09 09:11 落雷 阅读(335) 评论(0) 推荐(0) 编辑
摘要:原文在这里。 本教程为 Go 程序员提供了使用Protocol buffer的基本介绍。 本教程使用proto3向 Go 程序员介绍如何使用 protobuf。通过创建一个简单的示例应用程序,它向你展示了如何: 在.proto中定义消息格式 使用protocol buffer编译器 使用Go pro 阅读全文
posted @ 2023-10-08 13:46 落雷 阅读(465) 评论(0) 推荐(0) 编辑
摘要:Go 1.21中新增的 slices包中提供了很多与切片相关的函数,适用于任意类型的切片。 本文内容来自官方文档 BinarySearch 函数签名如下: func BinarySearch[S ~[]E, E cmp.Ordered](x S, target E) (int, bool) Bina 阅读全文
posted @ 2023-10-08 09:18 落雷 阅读(386) 评论(0) 推荐(0) 编辑
摘要:当你需要为你的 Go 项目创建一个强大的命令行工具时,你可能会遇到许多挑战,比如如何定义命令、标志和参数,如何生成详细的帮助文档,如何支持子命令等等。为了解决这些问题,github.com/spf13/cobra 就可以派上用场。 github.com/spf13/cobra 是一个用于构建强大的命 阅读全文
posted @ 2023-10-07 10:47 落雷 阅读(304) 评论(0) 推荐(0) 编辑
摘要:工厂模式是一种创建型设计模式,它提供了一个用于创建对象的接口,但允许子类决定实例化哪个类。工厂方法让一个类的实例化延迟到其子类。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在软件开发中,对象的创建和使用是常见的操作。然而,对象的创建过程常常会涉及到复杂的逻辑和多变的需求。为了 阅读全文
posted @ 2023-10-06 15:31 落雷 阅读(82) 评论(0) 推荐(0) 编辑
摘要:MySQL 是世界上最流行的开源关系型数据库管理系统之一,而其中的存储引擎则是其关键组成部分之一。InnoDB 存储引擎在 MySQL 中扮演了重要角色,提供了许多高级功能和性能优化,适用于各种应用程序和工作负载。本文将深入介绍 InnoDB 存储引擎的各个方面,以帮助您更好地理解它的特性和优势。 阅读全文
posted @ 2023-10-05 12:32 落雷 阅读(139) 评论(0) 推荐(0) 编辑
摘要:原文在这里。 由 Ian Lance Taylor 发布于2023年9月26日 slices 包函数签名 slices.Clone 函数很简单:它返回一个任意类型切片的副本: func Clone[S ~[]E, E any](s S) S { return append(s[:0:0], s... 阅读全文
posted @ 2023-10-04 07:53 落雷 阅读(281) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示