V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
richzhu
V2EX  ›  Go 编程语言

beego 如何把密码加密后存储

  •  
  •   richzhu · 2019-06-12 18:34:06 +08:00 · 4250 次点击
    这是一个创建于 2018 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大佬们好,正在学 golang,打算用 beego 开发一个简单的小网站练手,但是在用户登录功能处犯了难 用户表设计如下图..

    img

    这样存储密码,在数据库中是明文的,感觉酱紫不是很好,请问 beego 有没有现成的库可以在数据库中密文存储密码的,或者大佬们可以给个思路,让我密文存储后,还可以让用户进行常规登录。

    我目前能想到的就是密码先 md5 一下再存储到数据库,用户登录的时候再把用户 post 过来的给 md5 一下去与数据库中的比对,如果一样,就代表正确,但是总感觉我个菜鸟想出的方法不好,还有就是 md5 好像不太安全,网上免费暴力破解 md5 的网站太多了,求教有没有什么办法更安全,避免很容易就被破解之类的高端手法~

    先谢过各位 go 前辈~ 坐等回复

    6 条回复    2019-06-13 09:18:00 +08:00
    labulaka
        1
    labulaka  
       2019-06-12 18:50:10 +08:00 via Android   ❤️ 1
    试试 bcrypt 这个库?

    bcrypt.GenerateFromPassword
    bcrypt.CompareHashAndPassword
    ps:发不了链接🙄
    Comdex
        2
    Comdex  
       2019-06-12 20:38:27 +08:00 via Android   ❤️ 1
    用 bcrypt
    Pythondr
        3
    Pythondr  
       2019-06-12 20:41:31 +08:00   ❤️ 1
    mononite
        4
    mononite  
       2019-06-12 23:15:19 +08:00
    比 bcrypt 更安全的是 scrypt,https://godoc.org/golang.org/x/crypto/scrypt,可以抵抗 ASIC 和 GPU 的攻击。
    1800x
        5
    1800x  
       2019-06-13 07:19:40 +08:00 via Android
    单纯用摘要确实很容易破解
    有专门逆向摘要的网站,提供摘要和算法,简单的摘要都能逆向出来。其逆向机制也很简单,把所有简单密码的摘要存起来,然后去查……
    我的解决办法是这样的:
    既然密码简单,那就让它变复杂
    将密码加上一些固定的参数,加上特殊符号,再计算摘要,摘要值长度一样,但不怕脱裤了!
    比如下面的 userid:password@orgid
    如果 id 是 uuid 更好

    最后劝楼主早日醒悟
    web 框架绝对不能解决你的所有问题
    既然你选择了 go,就该扔掉 mvc 框架
    xmai
        6
    xmai  
       2019-06-13 09:18:00 +08:00
    [简单处理] “加盐”的方式来存储密码,先将用户输入的密码进行一次 MD5 (或其它哈希算法)加密;将得到的 MD5 值前后加上一些随机串,再进行一次 MD5 加密。这个随机串中可以包括某些固定的串,也可以包括用户名(用来保证每个用户加密使用的密钥都不一样)。
    [高级处理] 用库 https://godoc.org/golang.org/x/crypto/scrypt

    beego 有一份[Build web application with Golang]( https://astaxie.gitbooks.io/build-web-application-with-golang/content/zh/09.5.html) 里 <存储密码> 这章节提到。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2692 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:08 · PVG 20:08 · LAX 04:08 · JFK 07:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.