疯狂编程网

  • 首页
  • 后端
    • GOLANG
    • PHP
  • 前端
  • 客户端
  • 服务器
  • AIGC
  • 开发工具
  • 代码人生
  • 关于本站
    • 联系我们
    • 免责声明
GOLANG
GOLANG

密码学奇妙之旅、03 HMAC单向散列消息认证码、Golang代码

探索密码学的奇妙之旅。介绍HMAC单向散列消息认证码、加盐。使用golang crypto包实现HMAC生成与验证,重放攻击演示。 HMAC 单向散列消息认证码 消息认证码MAC是用于确认完整性并进行认证的技术,消息认证码的输入包括任意长度的消息和一个发送者和接收者之间共享的密钥(可能还需要共享盐值)。 HMAC是使用单向散列函数来构造消息认证码的方法,任何高强度单向散列函数都可以被用于HMAC,具体方法如下图所示。 发送者需要同时把消息和认证码发送给接收者,接收者接收了两者,并根据接收到的消息和共享的密钥生成认证…

2023年5月10日 0条评论 482点热度 0人点赞 大明 阅读全文
GOLANG

go channel原理及使用场景

转载自:go channel原理及使用场景 源码解析 type hchan struct { qcount uint // Channel 中的元素个数 dataqsiz uint // Channel 中的循环队列的长度 buf unsafe.Pointer // Channel 的缓冲区数据指针 elemsize uint16 // 当前 Channel 能够收发的元素大小 closed uint32 elemtype *_type // 当前 Channel 能够收发的元素类型 sendx uint // C…

2023年5月10日 0条评论 372点热度 0人点赞 大明 阅读全文
GOLANG

etcd实现分布式锁

转载自:etcd实现分布式锁 当并发的访问共享资源的时候,如果没有加锁的话,无法保证共享资源安全性和正确性。这个时候就需要用到锁 1、需要具备的特性 需要保证互斥访问(分布式环境需要保证不同节点、不同线程的互斥访问) 需要有超时机制,防止锁意外未释放,其他节点无法获取到锁;也要保证任务能够正常执行完成,不能超时了任务还没结束,导致任务执行一般被释放锁 需要有阻塞和非阻塞两种请求锁的接口 2、本地锁 当业务执行在同一个线程内,也就是我初始化一个本地锁,其他请求也认这把锁。一般是服务部署在单机环境下。 我们可以看下下面…

2023年5月10日 0条评论 303点热度 0人点赞 大明 阅读全文
GOLANG

密码学奇妙之旅、02 混合加密系统、AES、RSA标准、Golang代码

探索密码学的奇妙之旅。介绍CTR、混合密码系统、RSA-OAEP相关理论。并基于AES、RSA标准,使用golang crypto包实现了简单混合加密系统。 CTR 计数器模式 计数器模式CTR是分组密码模式中的一种。通过将逐次累加的计数器进行加密来生成密钥流的流密码。每次加密时会生成一个不同的值来作为计数器的初始值。 可以事先进行加密、解密的准备。 加密、解密使用相同结构。 对包含某些错误比特的密文进行解密时,只有明文中响应的比特会出错。 加密和解密均支持并行运算。可以以任意顺序对分组进行加密和解密。 在CTR模…

2023年5月10日 0条评论 431点热度 0人点赞 大明 阅读全文
GOLANG

golang中的errgroup

0.1、索引 https://waterflow.link/articles/1665239900004 1、串行执行 假如我们需要查询一个课件列表,其中有课件的信息,还有课件创建者的信息,和课件的缩略图信息。但是此时我们已经对服务做了拆分,假设有课件服务和用户服务还有文件服务。 我们通常的做法是,当我们查询课件列表时,我们首先调用课件服务,比如查询10条课件记录,然后获取到课件的创建人ID,课件的缩略图ID;再通过这些创建人ID去用户服务查询用户信息,通过缩略图ID去文件服务查询文件信息;然后再写到这10条课件记…

2023年5月10日 0条评论 313点热度 0人点赞 大明 阅读全文
GOLANG

《Go 精进之路》 读书笔记 (第一次更新)

《Go 精进之路》 读书笔记。简要记录自己打五角星的部分,方便复习巩固。目前看到p120 《Go 精进之路》 读书笔记。简要记录自己打五角星的部分,方便复习巩固。目前看到p120 Go 语言遵从的设计哲学为组合 垂直组合:类型嵌入,快速让一个类型复用其他类型已经实现的能力,实现功能的垂直扩展。 水平组合:接口实现鸭子类型。 变量名字中不要带有类型信息 userSlice []*User [BAD] users []*User [Good] 编程语言命名的管理:保持变量声明与使用之间的距离越近越好,或者在第一次使用变…

2023年5月10日 0条评论 289点热度 0人点赞 大明 阅读全文
GOLANG

CORS跨域

01、索引 https://waterflow.link/articles/1665656761584 1、为什么跨域 跨域资源共享 (CORS) 是一种基于 HTTP 标头的机制,它允许服务器指示除其自身之外的任何来源(域、方案或端口),浏览器应允许从中加载资源。 CORS 还依赖于一种机制,浏览器通过该机制向托管跨域资源的服务器发出“预检”请求,以检查服务器是否允许实际请求。 在该预检中,浏览器发送指示 HTTP 方法的标头和将在实际请求中使用的标头。 跨域请求的示例:从 https://a.com 提供的前端…

2023年5月10日 0条评论 321点热度 0人点赞 大明 阅读全文
GOLANG

golang中经常会犯的一些错误

0.1、索引 https://waterflow.link/articles/1664080524986 1、未知的枚举值 我们现在定义一个类型是unit32的Status,他可以作为枚举类型,我们定义了3种状态 type Status uint32 const ( StatusOpen Status = iota StatusClosed StatusUnknown ) 其中我们使用了iota,相关的用法自行google。最终对应的状态就是: 0-开启状态,1-关闭状态,2-未知状态 现在我们假设有一个请求参数过…

2023年5月10日 0条评论 287点热度 0人点赞 大明 阅读全文
GOLANG

go-zero docker-compose 搭建课件服务(九):http统一返回和集成日志服务

0、索引 go-zero docker-compose 搭建课件服务(九):http统一返回和集成日志服务 0.1源码地址 https://github.com/liuyuede123/go-zero-courseware 1、http统一返回 一般返回中会有code,message,data。当请求成功的时候code返回0或者200,message返回success,data为要获取的数据;当请求失败的时候code返回自定义的错误码,message返回展示给前端的错误信息,data为空。 我们将封装一个错误返回的…

2023年5月10日 0条评论 280点热度 0人点赞 大明 阅读全文
GOLANG

golang中的socket编程

0.1、索引 https://waterflow.link/articles/1664591292871 1、tcp的3次握手(建立连接) 客户端的协议栈向服务器端发送了 SYN 包,并告诉服务器端当前发送序列号 j,客户端进入 SYNC_SENT 状态; 服务器端的协议栈收到这个包之后,和客户端进行 ACK 应答,应答的值为 j+1,表示对 SYN 包 j 的确认,同时服务器也发送一个 SYN 包,告诉客户端当前我的发送序列号为 k,服务器端进入 SYNC_RCVD 状态; 客户端协议栈收到 ACK 之后,使得应…

2023年5月10日 0条评论 315点热度 0人点赞 大明 阅读全文
12345…34

近期文章

  • PHP图片裁剪函数
  • 文件同步命令rsync详解
  • go实现base64编码的四种方式
  • opencloudos安装mysql8.0
  • gearman中任务优先级

近期评论

没有评论可显示。

归档

  • 2024年3月
  • 2023年12月
  • 2023年10月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月

分类

  • GOLANG
  • iOS
  • LINUX
  • MYSQL
  • NGINX
  • PHP
  • SHELL
  • 前端
  • 客户端
  • 开发工具
  • 服务器
  • 未分类

COPYRIGHT © 2023 疯狂编程网. ALL RIGHTS RESERVED.

京ICP备2022013580号-1