全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1531|回复: 22

关于谷歌二步验证

[复制链接]
发表于 2021-11-3 14:07:25 | 显示全部楼层 |阅读模式
本帖最后由 ChenYFan 于 2021-11-3 14:15 编辑

我双手赞同。

首先,我自己经历过这件事情。在学校公共电脑上登陆谷歌账号,退出后没有清理,然后另一位同学也登陆了,直接把我的书签历史甚至密码同步到了他的账号!我当时吓得魂不守舍,后来才意识到谷歌有二步验证这个东西。

谷歌的验证是基于totp,简单点说就是根据一个固定密码和时间生成的临时密码。这不同于手机验证!国内的手机验证私钥是不给的,你必须要保持手机带在身边才能保证登陆。而谷歌给了密钥,这样你只要根据密钥和时间就可以计算(也可以口算),甚至不需要连接网络。所以,谷歌的二步验证可以不用手机!bitwarden

可能有人会抱怨,开二步有啥用。


安全是最主要的原因。但我推荐的一个重要原因是开了这玩意就不要手机邮箱验证了!这对我一个不能带手机的学生党非常有用(

这是一段js计算二步的模块
  1. import jsSHA from "jssha";
  2. const totp = (key) => {
  3.     function dec2hex(s) { return (s < 15.5 ? '0' : '') + Math.round(s).toString(16); }
  4.     function hex2dec(s) { return parseInt(s, 16); }

  5.     function base32tohex(base32) {
  6.         var base32chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";
  7.         var bits = "";
  8.         var hex = "";

  9.         for (var i = 0; i < base32.length; i++) {
  10.             var val = base32chars.indexOf(base32.charAt(i).toUpperCase());
  11.             bits += leftpad(val.toString(2), 5, '0');
  12.         }

  13.         for (var i = 0; i + 4 <= bits.length; i += 4) {
  14.             var chunk = bits.substr(i, 4);
  15.             hex = hex + parseInt(chunk, 2).toString(16);
  16.         }
  17.         return hex;

  18.     }

  19.     function leftpad(str, len, pad) {
  20.         if (len + 1 >= str.length) {
  21.             str = Array(len + 1 - str.length).join(pad) + str;
  22.         }
  23.         return str;
  24.     }


  25.     var key = base32tohex(key);
  26.     var epoch = Math.round(new Date().getTime() / 1000.0);
  27.     var time = leftpad(dec2hex(Math.floor(epoch / 30)), 16, '0');
  28.     var shaObj = new jsSHA("SHA-1", "HEX");
  29.     shaObj.setHMACKey(key, "HEX");
  30.     shaObj.update(time);
  31.     var hmac = shaObj.getHMAC("HEX");

  32.     var offset = hex2dec(hmac.substring(hmac.length - 1));

  33.     var otp = (hex2dec(hmac.substr(offset * 2, 8)) & hex2dec('7fffffff')) + '';
  34.     otp = (otp).substr(otp.length - 6, 6);

  35.     return otp
  36. }

  37. export default totp
复制代码


我之前也写了一个基于cfworker 密码存储与二步的软件,安全性没有得到可靠的验证,请大佬破解,如果有必要可以开源

https://passlesstest.baipiao1.workers.dev/login

如果想看源代码,请将回复github用户名,我将特邀
 楼主| 发表于 2021-11-3 14:17:50 | 显示全部楼层
hcyme 发表于 2021-11-3 14:09
就怕国内收不到,其他影响不大

我说的很明白了,和手机无关,你只要拿到密钥,手算都行
发表于 2021-11-3 14:31:23 | 显示全部楼层
是的,赶紧一起用1pssword管理你的全部密码吧

https://hostloc.com/thread-909999-1-1.html

点评

你为了凑人头真是无所不知  发表于 2021-11-3 14:36
发表于 2021-11-3 14:38:07 | 显示全部楼层
发表于 2021-11-4 12:36:15 | 显示全部楼层
好几年前就嫌单位堡垒机麻烦自己弄了个了

T.jpg (13.01 KB, 下载次数: 0)
发表于 2021-11-3 14:09:35 来自手机 | 显示全部楼层
就怕国内收不到,其他影响不大
发表于 2021-11-3 14:12:45 | 显示全部楼层
hcyme 发表于 2021-11-3 14:09
就怕国内收不到,其他影响不大

收不到? 这个不依赖网络只是计算而已吧
发表于 2021-11-3 14:13:29 | 显示全部楼层
我是用验证器输临时密码验证的
cherbim 该用户已被删除
发表于 2021-11-3 14:18:43 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2021-11-3 14:19:17 来自手机 | 显示全部楼层
bigbigboss 发表于 2021-11-3 14:12
收不到? 这个不依赖网络只是计算而已吧

有一次可能ip比较脏,立马要我用手机验证,开了手机直接点击就过了,完全没有明白,不是短信也不是验证码。
 楼主| 发表于 2021-11-3 14:22:03 | 显示全部楼层
cherbim 发表于 2021-11-3 14:18
个**验,谷歌开了两步验证,总给我发给设备验证,安卓没有GMS,直接收不到,ios玄学收到,有时很快,有时上 ...

你可能选择手机验证,我指的是totp。开了totp就没必要用手机了
发表于 2021-11-3 14:23:47 | 显示全部楼层
现在网站都应该提供开启两步验证的功能,虽然繁琐,但这是一个在多数时候能够保护隐私的方法
 楼主| 发表于 2021-11-3 14:28:57 | 显示全部楼层
louiejordan 发表于 2021-11-3 14:23
现在网站都应该提供开启两步验证的功能,虽然繁琐,但这是一个在多数时候能够保护隐私的方法 ...

是的,据我使用体会,国内外面向程序员和虚拟币的大网站都有二步
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-5-11 13:46 , Processed in 0.084459 second(s), 21 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表