实际开发中如何存储密码(md5加盐bcrypt)golang

本文介绍了在实际开发中如何使用加盐的加密方式来存储用户密码以保证安全性。重点讲解了MD5加盐和bcrypt两种方法。MD5加盐方式包括注册时的盐值生成、密码拼接加密以及登录时的盐值对比。而bcrypt由于每次加密结果不同且计算时间更长,提供了更强的安全保障。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

一般前端把用户密码发给服务端,服务端实际业务中如何存储密码呢,如何存储密码才能保证密码不被开发者获取或者被截取呢,保证密码的安全

加盐的加密方式

现在的企业开发大都采用这种方式了,比较安全的密码存储算法要求盐值至少在 8 Bytes 以上

首先肯定不可能明文传输,必须对密码加密,那怎么加密呢,我往下细看。一般加密比如 md5 直接为什么不行,因为破解者可能通过暴力破解的方式,字典破解的方式还是能找到原始密码是啥

因此我需要一种加盐的加密方式:比如 md5 加盐加密,即盐是一个随机生成的字符串,然后我们将 salt 和原始密码连接起来,将其加密,这样就不容易被破解了。即先加盐再加密

md5 加盐方式

注册时候:

  • 用户密码和其他信息到服务端
  • 服务端识别密码,随机函数生成盐和密码做拼接
  • 拼接后进行 md5 加密
  • 将 salt 和 hash 值存放数据库

登录:

  • 用户密码到服务端
  • 服务端获取 salt,对密码进行加盐加密和数据库比对
  • 比对正确登录 ok,比对错误则失败
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

abcnull

您的打赏是我创作的动力之一

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值