Go 加密与 TLS从 RSA 到 ECDHE 全面实战加密与 TLS 是安全工程的基础。本文讲清 hash、对称/非对称加密、TLS 握手与现代最佳实践。一、Hash 函数importcrypto/sha256sum:sha256.Sum256([]byte(hello))fmt.Printf(%x,sum)其它sha1已不安全、sha512、blake2b。二、HMACimportcrypto/hmacmac:hmac.New(sha256.New,[]byte(secret))mac.Write([]byte(message))mac.Sum(nil)三、对称加密AESimportcrypto/aesimportcrypto/cipherkey:[]byte(1234567890123456)block,_:aes.NewCipher(key)gcm,_:cipher.NewGCM(block)nonce:make([]byte,gcm.NonceSize())io.ReadFull(rand.Reader,nonce)ct:gcm.Seal(nil,nonce,[]byte(payload),nil)AES-GCM 提供加密 完整性校验。四、非对称加密RSApriv,_:rsa.GenerateKey(rand.Reader,2048)pub:priv.PublicKey ct,_:rsa.EncryptOAEP(sha256.New(),rand.Reader,pub,msg,nil)pt,_:rsa.DecryptOAEP(sha256.New(),rand.Reader,priv,ct,nil)RSA 速度慢仅用于会话密钥分发。五、ECDHE 临时密钥importcrypto/ecdhpriv,_:ecdh.P256().GenerateKey(rand.Reader)shared,_:priv.ECDH(peerPub)现代 TLS 走 ECDHE。六、TLS 握手client → hello server → hello, cert, ECDHE client → ECDHE, Finished七、TLS Serverimportcrypto/tlscert,_:tls.LoadX509KeyPair(cert.pem,key.pem)config:tls.Config{Certificates:[]tls.Certificate{cert}}ln,_:tls.Listen(tcp,:443,config)八、TLS Clientconn,_:tls.Dial(tcp,example.com:443,tls.Config{})九、mTLS双向认证caPool:x509.NewCertPool()caPool.AddCert(caCert)clientCert,_:tls.LoadX509KeyPair(client.pem,client-key.pem)config:tls.Config{Certificates:[]tls.Certificate{clientCert},ClientCAs:caPool,ClientAuth:tls.RequireAndVerifyClientCert,}十、TLS 1.3Go 1.13 默认 TLS 1.3。特点0-RTT仅 forward-secret协议简化十一、密码学库推荐Standard library基础够用golang.org/x/crypto扩展blowfish、chacha20等filippo.io/edwards25519curves25519十二、KDFimportgolang.org/x/crypto/pbkdf2key:pbkdf2.Key([]byte(password),[]byte(salt),116,32,sha256.New)十三、企业实战mTLS service meshSidecar 间通信都强制 mTLS。十四、JWT 与加密importgithub.com/golang-jwt/jwt/v5token:jwt.NewWithClaims(jwt.SigningMethodRS256,claims)s,_:token.SignedString(privateKey)十五、踩坑清单用 MD5 / SHA1 当 hash 关键字 → 弱嵌入式证书泄露库版本老随时升级十六、性能AES-NI 提速ECDHE 比 RSA 快 10x十七、未来后量子加密KyberTLS 1.4十八、总结与展望掌握 hash、AES/RSA、TLS、mTLS 与现代 Best Practice能让项目抵御大多数风险。未来crypto 子包继续扩充post-quantum 算法将逐步标准化。十九、参考文献Go 标准库 cryptoRFC 8446 TLS 1.3NIST PQC 算法集
企业数字化 ERP 产品动态
相关推荐
•博图交叉参考的隐藏用法,找变量、查地址快10倍 程序大了,找一个变量用在哪里、有没有重复、地址对不对,翻程序要半天。交叉参考功能,一键就能查清楚。1. 查变量使用位置操作步骤:(1)右键变量,选择“交叉引用”(2)所有用… · 2026/9/26 11:00:50
第05篇-模型切换与Provider管理:用TaoToken统一Key打通Hermes Agent多模型路由 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:00:43
Win11下PowerShell批量将GBK/ANSI文件转为UTF-8编码 1. 为什么要折腾这么一件小事:乱码问题的根源 先说个我实际遇到的场景。上个月接手一个老项目的文档整理工作,同事发过来一个压缩包,里面是一百多个 .txt 、 .ini 、 .sql 文件,说是从旧服务器上导出来的。我随手用记事本打… · 2026/9/26 12:07:51
OpenClaw Windows安装教程:从零到跑通的完整记录与踩坑指南 OpenClaw 在 Windows 上的简单安装教程:从零到跑通的完整记录先说明一下,这篇教程聊的是 OpenClaw——一个能在本地跑起来的 AI 智能体(Agent)框架。这么说可能有点抽象,换个角度:你可以把它理解成一个“机… · 2026/9/26 12:07:51
Windows上部署OpenClaw AI代理:WSL2与Docker实战指南 1. 先把 OpenClaw 是什么搞清楚再动手1.1 用大白话理解 OpenClaw 到底在做什么OpenClaw 是一个开源 AI 代理框架,核心思路是给大模型接上“手”和“耳朵”。大模型本身只会生成文字,它并不知道怎么去执行命令、读取文件、调用接口,而 OpenCla… · 2026/9/26 12:07:51
labelImg目标检测标注实战:安装、快捷键与XML格式全解析 简介:labelImg是一款开源且易用的图像标注工具,这份源码包内置完整Python工程与配置文件,适合计算机视觉初学者、研究人员以及需要批量制作训练数据的开发者使用。压缩包共含118个文件,大小约6.95MB,其中以py源码与pyc… · 2026/9/26 12:07:51
PyQtGraph自定义绘图实战:实现十字游标、区域高亮与数据标签 上一次我们把一个最基本的PyQtGraph绘图窗口跑通之后,我心里其实一直惦记着一件事:光能画折线、散点还不够,项目里真正麻烦的是那些“非标准”的图形——跟随鼠标的十字参考线、用来圈选数据区间的半透明区域、峰值点边上的自定义标注。Matpl… · 2026/9/26 12:07:50
校园服务平台小程序源码:跑通、避坑与升级实战 简介:校园服务平台小程序源码是一份导师指导并认可通过的98分优秀毕业设计项目,基于Java技术栈实现,定位面向计算机、电子信息工程、数学等专业正在做毕业设计的学生,也适用于课程设计、期末大作业与项目实战练习。压缩包共1108个… · 2026/9/26 12:07:44
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46