自如的密码锁有个问题,只要输入密码包含正确密码就能开锁

53 天前
 UserName99
这个问题存在好几年了,每次误触后还能开门就会纠结这个问题,比如正确密码是 A ,那么输入 A 、123A 、A123 、123A456 这几种都能开锁,这是个 bug 还是 feature 。然后又想到了另一个问题,他们是不是存的明文密码,如果是密文怎么判断输入密码包含正确密码的,就想到一个循环一下,每个字符后推 6 位加密后和存储的密文做对比,可能要循环很多次,还有其他什么好的算法吗?
3267 次点击
所在节点    程序员
32 条回复
mnsw
53 天前
虚位密码。
MJTest
53 天前
是 feature.
B1ankCat
53 天前
这是 feature ,就是为了让你可以随便输入,包含正确密码就能进去,防止被别人偷窥到
FabricPath
53 天前
feature ,当你背后有人站在的时候,你乱打几十个数字也能开门,但是对方不知道你真实密码是什么。
你这个算法想的有点复杂,单片机大概率不能动态分配内存,不好处理“动态长度”的数据;简单的方式是,你每按一个数字,比如你正确的密码是 234 ,你敲 1 的话,和 4 比较,不正确;
敲 2 ,和 2 比较,正确;
敲 3 ,和 3 比较,正确
敲 5 ,和 4 比较,不正确,清零。

当中途有匹配的密码之后,开锁 flag 置位,就不会再管后面你敲了什么,按下#的时候判断开锁 flag 。
FabricPath
53 天前
@FabricPath “你敲 1 的话,和 4 比较” -> "你敲 1 的话,和 2 比较"
yanqiyu
53 天前
判断密码就状态机(参照 kmp ),什么都不用存,存一个当前识别到几位连续密码就行,数据读一个丢一个

肯定存的是明文密码,密码锁存个明文密码没有任何困难和安全风险
EJW
53 天前
feature ,我家新换的德施曼智能门锁也是这样。
xubeiyou
53 天前
密码锁都这样- -
MJTest
53 天前
@EJW 我最近也想换 德施曼感觉用的怎么样啊?尤其是耗电量 谢谢
SimonOne
53 天前
这是 feature 啊,哥们,你不会突然灵光一闪吗
shadowyue
53 天前
虽然知道这个是 feature ,不过我挺好奇为啥这么统一
EJW
53 天前
@MJTest
1. 买的 q5s ,密码和指静脉用起来没啥毛病。
2. 如果门不符合,安装师傅现场施工,服务不错。
3. 四月初买的,用到现在还有 65%的电。
4. app 功能不多,但是做的还可以。wx 公众号有开门推送。
MoYi123
53 天前
密码固定 6 位,输一次密码算一次 md5(password[-6:]) 不就行, 这还要什么算法吗?
sennes
53 天前
那理论上是不是可以用 De Bruijn sequence 破解
ISOtropy
53 天前
我要是能输入一个π岂不是都可以破解
belin520
53 天前
@shadowyue 因为可能这个是密码锁标配的基础能力/基础功能
deplives
53 天前
老哥,所有的密码锁都支持啊,这个叫虚位密码,假定你不信任当前输入密码的环境,可以在连续正确密码前后增加任意多的字符,保证密码不被泄露
krixaar
53 天前
@sennes #14 可以,毕竟单纯按理论的话六位密码直接从 000000 按到 999999 就破解了……
Inn0Vat10n
53 天前
@krixaar 失败多次就锁死保护了,必须重设密码
Tsing2
53 天前
我猜楼主想问的是,如果使用虚位密码功能,那锁里保存的就不是密码的哈希而是密码的明文了,不然运算量有点大

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1060049

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX