从0解构tinyWeb项目--(Day:9)

今日任务

今天的感觉是看代码很顺畅很多都是之前的形式很类似

今日内容(auth.go)

Register(注册)函数

因为确实和昨天的内容形式很像没什么好讲的,如有疑惑可以看day7的内容

bcrypt加密

用户输入密码后,如果效验检查正确,那么会进行哈希加密

最终储存在数据库的密码是加密后的

不然管理员可以直接看到每个人的密码,或者如果有黑客侵入了数据库看到的就是完整的用户名+明文密码了

那么这里bcrypt加密有三个核心的特性

盐值

同一个密码会生成不同的加密结果

成本因子

这个相当于加密的次数,为了安全会反复加密,迭代加密很多次

慢哈希

降低每一次输入密码算哈希并匹配的速度,防止黑客暴力破解,

比如一个密码其实可能0.000001秒(对用户来说登录时瞬间感觉不到)就可以判断对不对错不错,于是黑客可以在一秒种试上亿次密码

但是如果一个密码需要0.1秒才能登录(对用户来说其实也差不多也很快),但是对于黑客的破解速度就大幅度减慢了,一秒只能试10个密码,破解的成本时间大大增加

Login(登录)函数

JWT token

用户登录后会生成一个token(类似身份证),

相当于身份证,或者通行证(临时的),可以避免重新去数据库匹配这样耗时的操作。

GetCurrentUser函数

手拿token时取自己的用户信息

注意这里ok是一种返回类型,这里代表是否取到信息,

今日练习

模拟 Register/Login 核心逻辑(用map代替数据库)

相关推荐
小码哥_常1 小时前
一套自己部署的 IM,客户端是同一份 Flutter
前端·后端
Decay__1 小时前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
代码山河4 小时前
Python就业方向全解析:后端、爬虫、数据分析、AI你选哪个?
python·学习·架构·教程·面向对象·项目
学长毕设4 小时前
基于SpringBoot的实验室资产管理系统
java·spring boot·后端
微订校园外卖平台5 小时前
校园外卖平台选模板还是定制:架构、数据流与验收清单
大数据·架构·外卖系统·本地生活·微订
努力的小雨6 小时前
给 AI 眼镜开发应用有多难?我从零做了一个陪练,还上架了
后端
ZhengEnCi6 小时前
用 AI 写代码为什么拼到最后还是拼人:算力瓶颈与领域专家提示词的本质差异
算法·架构
u1301307 小时前
GitHub 热榜项目:日榜(2026-10-29)
人工智能·github
Decay__7 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
excel8 小时前
双 Token 与前端使用 Crypto 公私钥鉴权换 Token,哪种方案更好?
前端·后端