IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    love 0
    nokiaguy
    发表于
    2024-10-20 10:15:00

    用C++实现自己的智能指针:深入探讨内存管理与RAII模式

    C++中的内存管理一直以来是程序员的一个难点,尤其是在处理动态内存分配时。智能指针(如`std::unique_ptr`和`std::shared_ptr`)通过RAII(资源获取即初始化)的设计理念,极大地简化了动态内存的管理,减少了内存泄漏的风险。然而,为了更好地理解智能指针的工作原理,掌握其背后的技术至关重要。本文将从零开始讲解如何实现自己的智能指针,探讨其内部细节,分析C++的内存管理机制,并展示如何利用RAII模式确保资源的安全释放。通过代码实例、详细的技术分析和表格展示,你将深入理解智能指针的本 ...继续阅读 (117)


    love 0
    chgaowei
    发表于
    2024-10-20 08:19:14

    复杂流程提示词新写法--提示词原来还可以这样写

    前几天看了 @李继刚 用lisp伪代码生成卡片的提示词,非常有意思,不过lisp代码我不熟悉,对我来说(可能对大多数来说也成立)可读性不好。它的本质应该是利用LLM编程能力比较强的特性,用LLM能够天生就理解的一种语言,来精确、简洁描述复杂流程的提示词。所以我试了一下,将 @李继刚 最新的方法论大师的代码用Python来写了一遍,发现效果也是OK的。下面是我修改后的代码,用Python表达后,提示词比之前可读性强了,不过也变长了。这是一个非常有意思的事情,意味着在我们写复杂流程提示词的时候,可以。 ...继续阅读 (91)


    love 0
    Nicksxs
    发表于
    2024-10-20 08:09:25

    Headscale渐入佳境补充篇-自定义中转derper使用反向代理

    之前在使用headscale的自建derper中转的时候,因为使用了acme管理的证书,虽然acme会自动续期,但是由于证书要做转换,没办法很方便的自动更新derper中映射的证书,因为最近在尝试迁移服务器,就在寻找是否有新的方法,正好就结合前面使用的caddy ...继续阅读 (170)


    love 0
    smallnest
    发表于
    2024-10-20 04:19:52

    Go中秘而不宣的数据结构 spmc, 10倍性能于 channel

    Go 标准库和运行中中,有一些专门针对特定场景优化的数据结构,这些数据结构并没有暴露出来,这个系列就是逐一介绍这些数据结构。这一次给大家介绍的就是一个 lock-free、高性能的单生产者多消费者的队列:PoolDequeue和PoolChain。到底是一个还是两个呢?主要是PoolDequeue, 它是一个固定尺寸,使用 ringbuffer (环形队列) 方式实现的队列。PoolChain是在它的基础上上,实现的一个动态尺寸的队列。生产者消费者模式是常见的一种并发模式,根据生产者的数量和消费者的数量,可以分为四种情况:单生产者-单消费者模式: spsc单生产者-多消费者模式: spmc多生产者-单消费者模式: mpsc多生产者-多消费者模式: mpmcChannel 基本上可以看做是一种多生产者多消费者模式的队列。可以同时允许多个生产者发送数据,有可以允许多个消费者消费数据,它也可以应用在其他模式的场景,比如 rpc 包中的 oneshot 模式、通知情况下的的单生产者多消费者模式、rpc 和服务端单连接通讯时的消息处理,就是多生产者单消费者模式。但是 Go 标准库的 sync 包下,有一个针对单生产者多消费者的数据结构,它是一个 lock-free 的数据结构,针对这个场景做了优化,被使用在sync.Pool中。sync.Pool采用了一种类似 Go 运行时调度的机制,针对每 ...继续阅读 (95)


    love 0
    smallnest
    发表于
    2024-10-20 04:19:42

    Go中秘而不宣的数据结构 runq, 难怪运行时调度那么好

    首先,让我们先来回顾 Go 运行时的 GPM 模型。这方面的介绍网上的资料都非常非常多了,但是我们也不妨回顾一下:GPM模型中的G代表goroutine。每个goroutine只占用几KB的内存,可以轻松创建成千上万个。G包含了goroutine的栈、指令指针和其他信息,如阻塞channel的等待队列等。P代表processor,可以理解为一个抽象的CPU核心。P的数量默认等于实际的CPU核心数,但可以通过环境变量进行调整。P维护了一个本地的goroutine队列,还负责执行goroutine并管理与之关联的上下文信息。M代表machine,是操作系统线程。一个M必须绑定一个P才能执行goroutine。当一个M阻塞时,运行时会创建一个新的M或者复用一个空闲的M来保证P的数量总是等于GOMAXPROCS的值,从而充分利用CPU资源。在这个模型中,P扮演了承上启下的角色。它连接了G和M,实现了用户层级的goroutine到操作系统线程的映射。这种设计允许Go在用户空间进行调度,避免了频繁的系统调用,大大提高了并发效率。调度过程中,当一个goroutine被创建时,它会被放到P的本地队列或全局队列中。如果P的本地队列已满,一些goroutine会被放到全局队列。当P执行完当前的goroutine后,会优先从本地队列获取新的goroutine来执行。如果本地队列为空,P会尝试从全局队列或 ...继续阅读 (98)


    love 0
    Yiran\'s Blog
    发表于
    2024-10-20 00:00:00

    Weekly Issue-《逃走的人》

    文章链接到标题技术链接到标题Self-Hosted device tracking with OwnTracks | Brian Douglass因为国内无法使用 Google Timeline,于是使用 [[OwnTracks]] 来记录自己的位置轨迹, 默认的 owntracks/recorder 和 owntracks/frontend 的数据呈现方式不是很喜欢,后续打算使用 InfluxDB 配合 Grafana Geomap 来调整一下。How I use git - by Thorsten Ball - Register SpillMy mantra for pull requests: small PRs, eagerly merged. Sometimes they’re 3 lines. Sometimes 300. Basically never 3000. If they’re open for more than a week, that’s a warning sign.The Ultimate Guide to Error Handling in Python - miguelgrinberg.com[[python]] 错误处理指南,比较 LBYL 和 EAFP 的处理方式,对错误进行分类,当前代码产生的错误、调用其他函数产生的错误、可恢复错误、不可恢 ...继续阅读 (132)


    love 0
    chgaowei
    发表于
    2024-10-19 21:43:25

    智能体网络时代即将来临,我们需要新的连接技术

    在最近结束的OpenAI开发者大会上,奥特曼表示o1已经达到了AGI二级(推理)水平,在不久的将来将会达到三级(智能体,Agent)。但是在智能体普及之前,还有一个关键的问题没有解决,就是Agent之间如何进行交互。为了让这些智能体能够高效合作,它们需要进行交流和互操作,就像朋友和同事一样无缝协作。最终,将会形成一个高效协作的智能体网络,它将会创建比现在互联网大得多的价值。但是,这也会提出新的技术挑战。 ...继续阅读 (91)


    love 0
    惜分飞
    发表于
    2024-10-19 14:01:18

    ntfs MFT损坏(ntfs文件系统故障)导致oracle异常恢复

    联系:手机/微信(+86 17813235971) QQ(107644445)标题:ntfs MFT损坏(ntfs文件系统故障)导致oracle异常恢复作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]客户虚拟化环境,由于断电,启动数据库报ORA-01157错误,通过操作系统层面查看,发现文件是存在的,但是dbv检测报不可访问感觉是文件系统损坏了,尝试把该文件拷贝到其他磁盘查看操作系统事件,确认是ntfs文件系统的MFT损坏基于这种情况,通过文件系统恢复工具进行恢复该文件尝试,提示恢复文件大小和实际元数据中记录大小不一致通过对比实际恢复大小和文件本身大小,发现7811899392-7791460352,几乎等于20M大小(也就是说恢复出来的数据文件少了20M),通过分析数据库alert日志,确认该系统在前端时间刚好扩展了20M(增加数据文件之时指定了每次扩展20m)2023-08-11T11:29:21.397236+08:00 ALTER TABLESPACE "HSHIS" ADD DATAFILE 'D:\APP\ADMINISTRATOR\ORADATA\HIS\HSHIS01.DBF' SIZE 10M AUTOEXTEND ON NEXT 20M MAXSIZE 8001M Completed: ALTER TABLESPA ...继续阅读 (122)


    love 0
    惜分飞
    发表于
    2024-10-19 14:01:18

    ntfs MFT损坏(ntfs文件系统故障)导致oracle异常恢复

    联系:手机/微信(+86 17813235971) QQ(107644445)标题:ntfs MFT损坏(ntfs文件系统故障)导致oracle异常恢复作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]客户虚拟化环境,由于断电,启动数据库报ORA-01157错误,通过操作系统层面查看,发现文件是存在的,但是dbv检测报不可访问感觉是文件系统损坏了,尝试把该文件拷贝到其他磁盘查看操作系统事件,确认是ntfs文件系统的MFT损坏基于这种情况,通过文件系统恢复工具进行恢复该文件尝试,提示恢复文件大小和实际元数据中记录大小不一致通过对比实际恢复大小和文件本身大小,发现7811899392-7791460352,几乎等于20M大小(也就是说恢复出来的数据文件少了20M),通过分析数据库alert日志,确认该系统在前端时间刚好扩展了20M(增加数据文件之时指定了每次扩展20m)2023-08-11T11:29:21.397236+08:00 ALTER TABLESPACE "HSHIS" ADD DATAFILE 'D:\APP\ADMINISTRATOR\ORADATA\HIS\HSHIS01.DBF' SIZE 10M AUTOEXTEND ON NEXT 20M MAXSIZE 8001M Completed: ALTER TABLESPA ...继续阅读 (121)


    love 0
    宋星
    发表于
    2024-10-19 12:44:21

    介绍AI时代的数据工具(1)——Polymer

    我开一个新的系列,分期介绍海外的AI时代的数据工具。这是第一篇。 在我的心中,AI提供的数据工具,跟过去我用过的所有的数据工具应该都非常不同。 它应该能够自己收集数据,自己组织数据,然后自己做出数据的分析。这意味着它能完全取代普通数据分析师 […] ...继续阅读 (91)


    love 0
    吴奕茗 (chengdulittlea@outlook.com)
    发表于
    2024-10-19 12:36:38

    在国内需要设计一种可折叠于自行车侧后的自行车拖车组件以应对停车空间不足的问题,而这事实上也适用于任何区域

    在国内需要设计一种可折叠于自行车侧后的自行车拖车组件以应对停车空间不足的问题,而这事实上也适用于任何区域2024/10/19 12:36:38 - 2024/10/19 12:36:38 ...继续阅读 (112)


    love 0
    nokiaguy
    发表于
    2024-10-19 11:15:00

    Android开发指南:用Java和Kotlin构建跨平台移动应用

    随着移动应用市场的蓬勃发展,跨平台开发成为开发者们实现更高效应用开发的重要方向。本指南详细介绍了如何使用Java和Kotlin在Android Studio中构建跨平台移动应用,并分享了一些最佳实践和优化技巧。从项目的创建到跨平台特性的实现,这篇文章将带领您一步步实现高效的应用开发。无论您是初学者还是经验丰富的开发者,都能从中找到适用于您的开发方法,打造在Android和其他平台上表现优异的移动应用。 ...继续阅读 (108)


    love 0
    sundesheng125
    发表于
    2024-10-19 10:40:22

    聊聊ASSERT处理在某些场景下的合理用法

    最近在跟一个客户反馈的bug,客户是做的安防家用云台机监控设备,说“设备挂测后异常,无法正常使用”的问题,也就是产品在老化的时候,本身应该是在APP端可以实时查看设备推流的视频的,幸运的是客户抓到了运行日志,以前客户也老化过很长时间未出现过这种问题,当客户把外套反馈到对外沟通群,公司甚是重视,立马组织兵力调查,千万不能耽误客户量产。有些错误我们是可以预估到,但是没法完全避免,首先我们要有防错的思维,就像我那同事提出的降低编码等级,数据量小了,也是一个有效手段,但是不能以防万一,不能根治; ...继续阅读 (111)


    love 0
    二丫讲梵
    发表于
    2024-10-19 10:30:42

    AWS运维部署实践--EKS集群结合metrics-server配置HPA的功能

    如要阅读全文,点击标题跳转。hpa 对于实际生产业务中,已经是一个常态化的基础能力,因此这是一个绕不过去的话题,EKS 原生是没有组件直接应用的,因此需要借助于 metrics-server 来进行配置支持。 ...继续阅读 (140)


    love 0
    二丫讲梵
    发表于
    2024-10-19 10:30:07

    AWS运维部署实践--内外网Ingress配置验证实践

    如要阅读全文,点击标题跳转。EKS集群拉起之后,事情并没有结束,因为想要集群内的服务被外部访问,势必需要Ingress的配置,上文中已经讲了ingress-controller的安装,那么本文将通过一些实际例子,来介绍内外网ingress的配置用法。 ...继续阅读 (107)


    love 0
    nokiaguy
    发表于
    2024-10-19 10:30:00

    Java与区块链:构建一个简单的区块链应用

    这篇技术文章详细地介绍如何用Java构建一个简单的区块链应用的过程。文章中提供了区块链的基本概念,也涵盖了相关的主要组件和模块,包括业务对象模块和区块结构、区块生成过程和关键的共识机制。文章将通过开发与代码示例,帮助读者完全理解区块链的运行原理和技术应用。通过清晰的示例和详细的讲解,让读者在学习的过程中愉快地理解Java与区块链的联系。 ...继续阅读 (147)


    love 0
    二丫讲梵
    发表于
    2024-10-19 10:26:57

    AWS运维部署实践--配置跨账号通过kubectl管理EKS集群

    如要阅读全文,点击标题跳转。通常我们的eks集群都应该是集中管理的,在同一账号中,可直接通过集中的某台主机进行管理,但在跨账号场景中,则需要费一番周折,此处记录下配置的过程。需求:想要在A账号的主机X上,通过kubectl管理B账号下的EKS集群。先概述下配置思路:在B账号中创建角色,并将角色共享给A账号,然后A账号创建一个用户,通过该用户,来实现认证并管理集群的功能。 ...继续阅读 (148)


    love 0
    dax.net
    发表于
    2024-10-19 09:20:00

    在C#中基于Semantic Kernel的检索增强生成(RAG)实践 - dax.net

    【摘要】Semantic Kernel简介 玩过大语言模型(LLM)的都知道OpenAI,然后微软Azure也提供了OpenAI的服务:Azure OpenAI,只需要申请到API Key,就可以使用这些AI服务。使用方式可以是通过在线Web页面直接与AI聊天,也可以调用AI的API服务,将AI的能力集成到阅读全文 ...继续阅读 (110)


    love 0
    WinstonChen
    发表于
    2024-10-19 08:53:04

    某节大瓜,GPU集群投毒!

    前些日子,宇宙厂爆出了个惊天大瓜。自回归团队某实习生,被公司直接送进号子,喜提银手镯一副。原因是实习生对商业化整个GPU集群里恶意注入病毒。最终导致,8000 多张 H100 的 GPU 集群,一个多月的训练结果,全是错的...这事儿在朋友圈已经停不下来了,内容实在太炸裂了!具体什么程度?技术总监亲自给副总裁汇报的程度!!网传,事情的起因大致是,leader 把调度给了 dit 生图团队,冷落了自回归团队。实习生作为北大毕业的高材生,可能心生怨气,于是选择了恶意报复。最后直接给公司整了波大的,当然,也把自己的前程断送了。据传,此人的“投毒”操作主要是利用了Huggingface的load ckpt函数漏洞。load ckpt是用于加载模型的保存状态的函数。具体的问题,是TFPreTrainedModel()类的load_repo_checkpoint()函数在反序列化未受信任的数据时使用了pickle.load(),而 pickle 模块在反序列化时会执行数据中的任意代码。攻击者可以通过构造一个恶意的序列化数据(如恶意的checkpoint文件),利用这个存在漏洞的函数的反序列化机制来执行任意代码。这直接导致,任何使用这个函数的人,在正常的训练或推理过程中只要加载了这个checkpoint,攻击者的恶意代码都会直接执行。因此,存在的攻击方式包括修改或注入恶意代码,使得在模型加载时执 ...继续阅读 (121)


    love 0
    WinstonChen
    发表于
    2024-10-19 08:53:04

    某节大瓜,GPU集群投毒!

    前些日子,宇宙厂爆出了个惊天大瓜。自回归团队某实习生,被公司直接送进号子,喜提银手镯一副。原因是实习生对商业化整个GPU集群里恶意注入病毒。最终导致,8000 多张 H100 的 GPU 集群,一个多月的训练结果,全是错的...这事儿在朋友圈已经停不下来了,内容实在太炸裂了!具体什么程度?技术总监亲自给副总裁汇报的程度!!网传,事情的起因大致是,leader 把调度给了 dit 生图团队,冷落了自回归团队。实习生作为北大毕业的高材生,可能心生怨气,于是选择了恶意报复。最后直接给公司整了波大的,当然,也把自己的前程断送了。据传,此人的“投毒”操作主要是利用了Huggingface的load ckpt函数漏洞。load ckpt是用于加载模型的保存状态的函数。具体的问题,是TFPreTrainedModel()类的load_repo_checkpoint()函数在反序列化未受信任的数据时使用了pickle.load(),而 pickle 模块在反序列化时会执行数据中的任意代码。攻击者可以通过构造一个恶意的序列化数据(如恶意的checkpoint文件),利用这个存在漏洞的函数的反序列化机制来执行任意代码。这直接导致,任何使用这个函数的人,在正常的训练或推理过程中只要加载了这个checkpoint,攻击者的恶意代码都会直接执行。因此,存在的攻击方式包括修改或注入恶意代码,使得在模型加载时执 ...继续阅读 (122)


    love 0
    admin
    发表于
    2024-10-19 02:59:40

    架构劣化,系统复杂度飙升,如何应对?

    在构建和演进复杂企业级系统时,架构师常常面临一个令人头痛的现象:架构劣化。当系统初始设计时一切都井然有序,但随着业务需求的不断增多、新功能的迭代、技术栈的多样化引入,系统开始逐渐变得复杂,模块间的耦合度不断上升,开发者在维护和扩展时难免感到力不从心。系统的可预测性降低,Bug 频发,技术债务迅速累积,甚至每一次小的改动都可能引发意想不到的问题。为什么曾经清晰的架构会走向失控?如何在长期的系统演化中,保证架构的灵活性与可维护性,而不让其逐渐腐化?这一切都指向了一个关键问题:架构设计中的一致性。正如 Fred Brooks 在《设计原本(The Design of Design)》中所言:「一致性应该是所有质量原则的根基。」今天我们将从风格一致性、解决方案一致性、以及形式一致性三个方面,聊下架构设计中如何实现一致性。1 风格一致性:统一的架构模式何谓风格?架构风格是构建系统时遵循的一套原则和模式,它为系统的设计提供了抽象框架。风格可以看作是架构中一系列可重复的微观决策,这些决策在不同上下文中应用,旨在最小化开发者的脑力负担。风格具有其属性:妥适性:根据奥卡姆剃刀原理,风格应避免引入不必要的复杂性,满足基本功能即可。这意味着架构设计中应当聚焦于最核心的需求,避免过度设计。普遍性:风格应该具备广泛适用性,能够通过有限的功能支持多种结果。这种普遍性有助于减少架构中的冗余,提升系统的灵活性。架 ...继续阅读 (124)


    love 0
    张善友
    发表于
    2024-10-19 00:00:00

    Eclipse Symphony - 张善友

    【摘要】Eclipse Symphony 是一个Eclipse 基金会下的多功能的开源工具链协调器,旨在将各种边缘软件和硬件堆栈无缝集成为一个完整的端到端体验。它允许开发者和采用者在不进行任何更改的情况下使用他们当前的系统,并将这些分散的系统统一为一个连贯的整体。Symphony 是一个基于标准的解决方案,阅读全文 ...继续阅读 (124)


    love 0
    mephisto.cc
    发表于
    2024-10-19 00:00:00

    使用Git和Ansible管理配置文件

    在日常工作中,维护运行某些程序,需要通过配置文件,更改软件的行为逻辑,比如Nginx的配置文件、Prometheus的配置文件等。在较复杂的一些真实业务场景中,可能还涉及多机房的加载不同配置文件。阅读更多 ...继续阅读 (106)


    love 0
    豌豆花下猫
    发表于
    2024-10-19 00:00:00

    Python 潮流周刊#73:让我们对 PyPI 温柔一点,好吗?

    本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。分享了 12 篇文章,12 个开源项目,2 则热门讨论,全文 2000 字。以下是本期摘要:🦄文章&教程① 让我们对 PyPI 温柔一点,好吗?② 是否应该在生产中使用 uv 托管的 Python?③ 我在开发 YouTube 字幕优化器时学到了什么?④ Starlette 应用的并发问题(以 FastAPI/FastHTML 为例)⑤ 成为 Python 核心开发者的好处⑥ 如何将 Eventlet 项目迁移到 Asyncio?⑦ OpenTelemetry 示例:用 Python 开发特斯拉监控器⑧ 用 Django、GraphQL 和 Vue 开发博客⑨ PEP-762:Python REPL 的重新实现⑩ Slack 如何解决棘手的数据库连接 TCP 错误?⑪ 局部变量就像无意中掉落的面包屑⑫ 对 Python 项目架构的思考🐿️项目&资源① austin:Python 帧堆栈采样器② srgn:类似 grep 的源码搜索/操作工具③ swarm:OpenAI 推出的研究多智能体编排的框架④ makedown:在可执行的 Markdown 文件中管理 Shel ...继续阅读 (116)


    love 0
    mephisto.cc
    发表于
    2024-10-19 00:00:00

    使用Git和Ansible管理配置文件

    在日常工作中,维护运行某些程序,需要通过配置文件,更改软件的行为逻辑,比如Nginx的配置文件、Prometheus的配置文件等。在较复杂的一些真实业务场景中,可能还涉及多机房的加载不同配置文件。阅读更多 ...继续阅读 (24)


    love 0
    二丫讲梵
    发表于
    2024-10-18 23:59:56

    AWS运维部署实践--快速拉起生产可用的EKS集群

    如要阅读全文,点击标题跳转。AWS 的 K8S 产品名叫 EKS,EKS 针对 K8S 的封装非常克制,因此有不少内容,需要我们自己手动来完成,本文记录下 EKS 集群搭建相关的配置,让你能够快速把集群搭建出来,并且跑通可用。 ...继续阅读 (132)


    love 0
    二丫讲梵
    发表于
    2024-10-18 23:57:35

    AWS运维部署实践--使用sigma自建镜像仓库代替ECR

    如要阅读全文,点击标题跳转。aws 的 ecr 存在一定的问题,这里准备使用自建的镜像服务。这里简单说下问题在哪里,首先镜像的路径只支持单层,无法做到 image.test.com/daily/a 或 image.test.com/gray/a 这样的层级,所以在实际应用时,我们可能会把第一层作为环境,第二层作为应用,便于区分与管理,但 ecr 不支持。(当然你会说可以在 tag 上做做文章,的确可以,但总感觉比较别扭)。第二个问题,貌似在我测试的时候,仓库是不支持 push 时自动创建的,看了下网上资料,说需借助 lamda 实现的,算了,不跟你计较了。针对于简单的使用场景,harbor 太重了,这里选择轻量的平替 sigma。 ...继续阅读 (133)


    love 0
    二丫讲梵
    发表于
    2024-10-18 23:56:49

    AWS运维部署实践--route53私有域跨账号共享

    如要阅读全文,点击标题跳转。如果你的业务场景有多个 AWS 账号,那么私有域共享就是一个绕不开的话题。aws 中的 route53 私有域配置跨账号共享有两种方案,一种是直接跨账号关联 VPC,一种是通过配置文件共享的形式实现。本文采用第一种方案,只需要两条命令即可完成此需求。 ...继续阅读 (127)


    love 0
    二丫讲梵
    发表于
    2024-10-18 23:54:19

    AWS运维部署实践--网络环境规划

    如要阅读全文,点击标题跳转。我们最近对一个完整的业务进行了 AWS 化部署,经借这个机会,我得以对 AWS 运维有了些许了解。对于用惯了国内阿里云,腾讯云的我来说,猛地一下子要使用 AWS,会有一种世界倒退了几十年的感觉。但大多数时候,用哪个云都并非我们的选择。所以一开始就要学着降低心理预期,很多东西不能按照以往的思路平迁,不要怀着排斥或是睥睨的心态,那样只会让自己陷入思绪的沼泽,耽误了正事儿。接下来,将会用几篇不同维度的专题文章,对一些容易踩坑的地方,以及主要的内容进行记录分享,如有类似场景需求的同学,阅读或有助益。 ...继续阅读 (155)


    love 0
    bigwhite
    发表于
    2024-10-18 23:22:17

    Go开发者的密码学导航:crypto库使用指南

    本文永久链接– https://tonybai.com/2024/10/19/go-crypto-package-design-deep-diveGo号称“开箱即用”,这与其标准库的丰富功能和高质量是分不开的。而在Go标准库中,crypto库(包括crypto包、crypto目录下相关包以及golang.org/x/crypto下的补充包)又是Go社区最值得称道的Go库之一。crypto库由Go核心团队维护,确保了最高级别的安全标准和及时的漏洞修复,为开发者提供了可靠的安全保障。crypto还涵盖了从基础的对称加密到复杂的非对称加密,以及各种哈希函数和数字签名算法等广泛的加解密算法支持,以满足Go开发者的各种需求为目的,而不是与其他密码学工具包竞争。此外,crypto库还经过精心优化,能够在不同硬件平台上尽可能地保证高效的执行性能。值得一提的是,crypto库还提供了统一的API设计,使得不同加密算法的使用方式保持一致,也降低了开发者的学习成本。可以说Go crypto库是Go生态中密码学功能的核心,它为Go开发者提供了一套全面、安全、保持现代化、提供安全默认值且易于使用的密码学工具,使得在Go应用程序中实现各种密码学功能需求时变得简单而可靠。不过要理解并得心应手的使用crypto库中的相关密码学包仍然并非易事,这是因为密码学涉及数学、密码分析、计算机安全等多个学科,概 ...继续阅读 (164)

上一页 242/4404 下一页
沪ICP备19023445号-2号
友情链接