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

查看 155|回复 12
作者:UserName99   
这个问题存在好几年了,每次误触后还能开门就会纠结这个问题,比如正确密码是 A ,那么输入 A 、123A 、A123 、123A456 这几种都能开锁,这是个 bug 还是 feature 。然后又想到了另一个问题,他们是不是存的明文密码,如果是密文怎么判断输入密码包含正确密码的,就想到一个循环一下,每个字符后推 6 位加密后和存储的密文做对比,可能要循环很多次,还有其他什么好的算法吗?
mnsw   
虚位密码。
MJTest   
是 feature.
B1ankCat   
这是 feature ,就是为了让你可以随便输入,包含正确密码就能进去,防止被别人偷窥到
FabricPath   
feature ,当你背后有人站在的时候,你乱打几十个数字也能开门,但是对方不知道你真实密码是什么。
你这个算法想的有点复杂,单片机大概率不能动态分配内存,不好处理“动态长度”的数据;简单的方式是,你每按一个数字,比如你正确的密码是 234 ,你敲 1 的话,和 4 比较,不正确;
敲 2 ,和 2 比较,正确;
敲 3 ,和 3 比较,正确
敲 5 ,和 4 比较,不正确,清零。
当中途有匹配的密码之后,开锁 flag 置位,就不会再管后面你敲了什么,按下#的时候判断开锁 flag 。
FabricPath   
@FabricPath “你敲 1 的话,和 4 比较” -> "你敲 1 的话,和 2 比较"
yanqiyu   
判断密码就状态机(参照 kmp ),什么都不用存,存一个当前识别到几位连续密码就行,数据读一个丢一个
肯定存的是明文密码,密码锁存个明文密码没有任何困难和安全风险
EJW   
feature ,我家新换的德施曼智能门锁也是这样。
xubeiyou   
密码锁都这样- -
MJTest   
@EJW 我最近也想换 德施曼感觉用的怎么样啊?尤其是耗电量 谢谢
您需要登录后才可以回帖 登录 | 立即注册

返回顶部