20170113 午夜俱乐部 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
肯德基 24 小时外卖热线
4008-823-823
麦当劳 24 小时外卖热线
4008-517-517
睡觉之前和起床之后,要记得刷牙和用漱口水清洁口腔
icedx
V2EX    天黑以后

20170113 午夜俱乐部

  •  
  •   icedx 2017-01-12 23:53:10 +08:00 2807 次点击
    这是一个创建于 3277 天前的主题,其中的信息可能已经有所发展或是发生改变。
    19 条回复    2017-01-13 01:00:21 +08:00
    DoraJDJ
        1
    DoraJDJ  
       2017-01-12 23:59:19 +08:00
    自己试着做了一个用户登录系统,原来没有想象中的那么难





    不知道我的方案安不安全,密码加盐后,盐值存在另外一个表内,用户名和密码存放在用户表内,盐长度固定 32 , SHA256 配 HMAC 进行哈希运算。
    lostvincent
        2
    lostvincent  
       2017-01-13 00:00:26 +08:00 via iPhone
    还有半年就毕业了,为自己将来担忧
    要是可以活几个世纪该多好:(
    DoraJDJ
        3
    DoraJDJ  
       2017-01-13 00:01:06 +08:00
    @DoraJDJ 顺便问一下,大家觉得登录成功后 session 得怎么存储?

    是存用户 ID 还是用户名,或者是其他之类的东西?

    现在是用户名存 session 里,但是发现 koa-session 存的时候是将 session 用可逆转的 base64 编码存储,感觉有点不放心。
    Baymaxbowen
        4
    Baymaxbowen  
       2017-01-13 00:02:27 +08:00 via Android
    唉,又要过年了
    Kilerd
        5
    Kilerd  
       2017-01-13 00:12:34 +08:00 via iPhone
    @DoraJDJ 登录系统并不难做,我现在为自己的几个项目做一个统一的登录认证服务器,简化版的 oauth2 。


    怎么储存的话,用 aes 加密然后 hmac 签名一下就行
    密文.hmac

    这样既不怕被看到,也不怕被伪造。

    可以参考下 Python 的 itsdangerous 这个包
    挺好用的
    wjm2038
        6
    wjm2038  
       2017-01-13 00:12:57 +08:00 via Android
    @DoraJDJ 最好不要可逆的吧,我觉得应该还是用户名加什么其他的加个密, md5(md5())
    isCyan
        7
    isCyan  
       2017-01-13 00:13:12 +08:00 via Android
    @DoraJDJ 这用户系统,就简单的注册登录找回密码呀这些真要做得好很难呐,我自己试过发现需要考虑的地方比想象得多很多,要做得人性化用着舒服更难
    Kilerd
        8
    Kilerd  
       2017-01-13 00:17:50 +08:00
    @DoraJDJ
    ![1.png]( https://ooo.0o0.ooo/2017/01/13/5877abcfd22a9.png)
    ![2.png]( https://ooo.0o0.ooo/2017/01/13/5877abcfd3322.png)

    这是我设计的页面,这两天为了设计几个页面操足了心思。

    PS : LOGO 是小伙伴设计的。 不要在意 HTML 的 TITLE 信息, LOGIN 的色调也还没调好。
    Kilerd
        9
    Kilerd  
       2017-01-13 00:18:17 +08:00
    https://ooo.0o0.ooo/2017/01/13/5877abcfd22a9.png
    https://ooo.0o0.ooo/2017/01/13/5877abcfd3322.png

    图片怎么就显示不了呢???
    Kilerd
        10
    Kilerd  
       2017-01-13 00:22:07 +08:00
    @DoraJDJ 刚刚说的,是 session 或者 cookies 的储存方法。

    至于 密码怎么在库里面储存,直接用 安全的 hash 函数就行。

    不要用 MD5 , SHA1 !!!
    不要用 MD5 , SHA1 !!!
    不要用 MD5 , SHA1 !!!

    有能力的直接上 SHA3 ,或者对称加密 AES (这里也不推荐用对称加密,毕竟是可逆的,过不了用户那关)

    简单的还是上 SHA3 吧。


    不要信 6L 的说法, 即使是两层的 md5 都有了彩虹表可以跑了。 意义是跟 单层的 MD5 一样的。

    加盐的方法的话, 意义不大,主要是要挑选一个安全的不可逆算法,那么 SHA3 就是最好的选择了。
    feather12315
        11
    feather12315  
       2017-01-13 00:26:13 +08:00 via Android
    考试后,出去浪,一小时前刚回来。
    很幸福
    DoraJDJ
        12
    DoraJDJ  
       2017-01-13 00:26:37 +08:00 via Android
    @Kilerd 我现在也有点纳闷, Koa 的 session 中间件在使用时必须给 app 声明 keys 变量的值(估计就是用于安全类的?),但是存储的时候 cookie 用 base64 编码,还有一个 cookie 貌似就是标识符之类的东西,这种方法究竟安不安全。

    @wjm2038 我也想 session 不可逆,但这样的话我又怎么知道登录到的是谁的号呢?当时想做个用户验证系统时就经常因为这个问题给难倒。
    DoraJDJ
        13
    DoraJDJ  
       2017-01-13 00:28:14 +08:00 via Android
    @Kilerd 我也知道现在 MD5 破解一个彩虹表的事,所以我存密码时就用的 sha256 加 hmac 和盐,应该也足够安全吧。

    不知道 sha1 和 sha3 之类的有什么区别。
    wjm2038
        14
    wjm2038  
       2017-01-13 00:30:44 +08:00 via Android
    @DoraJDJ 再来一个 key 为 userid 的应该就可以了吧
    Kilerd
        15
    Kilerd  
       2017-01-13 00:30:57 +08:00 via iPhone
    @DoraJDJ koa 自己有安全措施就不用折腾了。不安全的话早就发 issue 了。

    我刚刚说的那个 密文.hmac 是用在 oauth2.0 服务器向站点回送 token 之类的信息所做的安全措施。
    DoraJDJ
        16
    DoraJDJ  
       2017-01-13 00:33:46 +08:00 via Android
    @Kilerd 希望是这样,我明天试着篡改下 cookie 看看会不会出什么幺蛾子吧
    Kilerd
        17
    Kilerd  
       2017-01-13 00:40:23 +08:00 via iPhone
    @DoraJDJ 他的 key 就相当于对称加密的密码。他先加密存起来,需要用的时候试图解密,成功就用,不成功就等于没传入这个 cookies 一样,本质都是对称加密。
    Vladimir
        18
    Vladimir  
       2017-01-13 00:42:59 +08:00 via iPhone
    仔细想想低配 nmbp 就能满足我了
    green15
        19
    green15  
       2017-01-13 01:00:21 +08:00 via iPhone
    计划提前,摊手
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1353 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 16:28 PVG 00:28 LAX 08:28 JFK 11:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86