
1 mns 2024-07-25 16:10:49 +08:00 via Android 虚位密码。 |
2 MJTest 2024-07-25 16:11:53 +08:00 是 feature. |
3 B1ankCat 2024-07-25 16:13:07 +08:00 这是 feature ,就是为了让你可以随便输入,包含正确密码就能进去,防止被别人偷窥到 |
4 FabricPath 2024-07-25 16:14:58 +08:00 feature ,当你背后有人站在的时候,你乱打几十个数字也能开门,但是对方不知道你真实密码是什么。 你这个算法想的有点复杂,单片机大概率不能动态分配内存,不好处理“动态长度”的数据;简单的方式是,你每按一个数字,比如你正确的密码是 234 ,你敲 1 的话,和 4 比较,不正确; 敲 2 ,和 2 比较,正确; 敲 3 ,和 3 比较,正确 敲 5 ,和 4 比较,不正确,清零。 当中途有匹配的密码之后,开锁 flag 置位,就不会再管后面你敲了什么,按下#的时候判断开锁 flag 。 |
5 FabricPath 2024-07-25 16:15:43 +08:00 @FabricPath “你敲 1 的话,和 4 比较” -> "你敲 1 的话,和 2 比较" |
6 yanqiyu 2024-07-25 16:17:39 +08:00 判断密码就状态机(参照 kmp ),什么不用存,存一个当前识别到几位连续密码就行,数据读一个丢一个 肯定存的是明文密码,密码锁存个明文密码没有任何困难和安全风险 |
7 EJW 2024-07-25 16:18:35 +08:00 feature ,我家新换的德施曼智能门锁也是这样。 |
8 xubeiyou 2024-07-25 16:21:31 +08:00 密码锁都这样- - |
10 SimonOne 2024-07-25 16:31:16 +08:00 这是 feature 啊,哥们,你不会突然灵光一闪吗 |
11 shadowyue 2024-07-25 16:33:06 +08:00 虽然知道这个是 feature ,不过我挺好奇为啥这么统一 |
12 EJW 2024-07-25 16:43:29 +08:00 @MJTest 1. 买的 q5s ,密码和指静脉用起来没啥毛病。 2. 如果门不符合,安装师傅现场施工,服务不错。 3. 四月初买的,用到现在还有 65%的电。 4. app 功能不多,但是做的还可以。wx 公众号有开门推送。 |
13 MoYi123 2024-07-25 17:14:18 +08:00 密码固定 6 位,输一次密码算一次 md5(password[-6:]) 不就行, 这还要什么算法吗? |
14 sennes 2024-07-25 17:33:32 +08:00 那理论上是不是可以用 De Bruijn sequence 破解 |
15 ISOtropy 2024-07-25 17:41:17 +08:00 via Android 我要是能输入一个π岂不是都可以破解 |
17 deplives 2024-07-25 17:46:11 +08:00 老哥,所有的密码锁都支持啊,这个叫虚位密码,假定你不信任当前输入密码的环境,可以在连续正确密码前后增加任意多的字符,保证密码不被泄露 |
19 Inn0Vat10n 2024-07-25 17:56:55 +08:00 @krixaar 失败多次就锁死保护了,必须重设密码 |
20 Tsing2 2024-07-25 18:18:23 +08:00 我猜楼主想问的是,如果使用虚位密码功能,那锁里保存的就不是密码的哈希而是密码的明文了,不然运算量有点大 |
21 ysc3839 2024-07-25 18:21:35 +08:00 via Android @FabricPath 但是对方看到完整密码后输入进去也能解锁,感觉意义不大,只有在对方不能完整看到的情况下有点用,或者可能是增加容错率,避免不小心碰到别的数字再输入正确密码失败。 |
22 0d 2024-07-25 18:22:19 +08:00 @tlsmars009 正常的密码锁,输入一个 pi 也可以打开 |
23 utc76 2024-07-25 18:38:54 +08:00 @Inn0Vat10n 我把每一种 6 位数字组合全部按一遍,到最后的时候才按 # 开锁,理论来说这样无论如何我都能开锁。 |
24 jim9606 2024-07-25 18:39:59 +08:00 via Android 防偷窥不合理,因为只要完整重放多头多尾的密码一样可以开锁。 省内存这个存疑,我不觉得现在有 wifi 功能的 mcu 会负担不起这点代价,可能只是单纯沿用以前弱鸡 mcu 的交互设计。 交互上,多数密码锁没有清空输入按键也没屏幕提示位数,支持这种输入可以免去对这两者的需求(故意输错虽然可以但会累计错误次数,不能等同于清空输入) |
25 mcfog 2024-07-25 19:02:36 +08:00 多按几位还有一个好处是避免长期使用以后,密码的那几个按键痕迹/磨损到有肉眼可见的差异 |
27 CSGO 2024-07-25 20:36:05 +08:00 via Android 这个挺好, |
28 churchmice 2024-07-25 23:56:54 +08:00 你只要密码长度的是固定的,里面存 hash 也是没有问题的 输入的数据存在一个 buffer 里面,用个滑窗挨个算 hash 就行,计算量也不大 但是现实的问题是大家都偷懒不会这么做,我见过太多做安全的应用,号称多么安全,最后把钥匙挂门上的设计 安全这东西最重要的是安全意识,可惜大多数人没有 反过来你如果有安全意识,你的设计成本会增加,反而会被劣币驱逐,乳汁奈何 |
29 SimonOne 2024-07-26 01:14:21 +08:00 @jim9606 #24 记住 6 位密码和记住 20 位密码的难度是不一样的,我只要确保胡按的里面夹上正确的就行,偷窥记密码的人可没那么轻松了。 |
30 JustBecause 2024-07-26 09:31:21 +08:00 @ysc3839 多加几位就好了,我当着面输 20 位密码,看得人也记不住啊,实在不行我输 30 位 40 位 |
31 Ainokiseki 2024-07-26 11:20:15 +08:00 @FabricPath 如果是这样的话,假设正确密码是 2324 ,输入“232324”会无法判断通过的 |