【发布时间】:2014-02-11 10:15:08
【问题描述】:
我对一个我想做的项目有一个有趣的想法,但我不太确定它的数学部分。思路如下:
- 制作一张塑料卡片,当它靠在电容式屏幕上时模拟 9 指多点触控手势
- 根据“9 指”位置,确定某种唯一字符串并将其用作应用的加密/解密密钥
这样我就可以打开一个应用程序,用卡触摸屏幕,它就会获得授权。 但问题来了:
- 将卡片放在屏幕上的哪个位置并不重要,因为卡片会非常小以适应各种屏幕尺寸
- 我们可以随机放置 9 个“手指”的矩形最好是 4.5 厘米 x 3 厘米
- “手指”本身只有在大约 6 毫米的圆圈时才会被识别为触摸(不确定是否可以做得更小)
我想我们可以找到左上角的“手指”,并从中获取所有其他“手指”的 X 和 Y 差异。然后将得到的数字连接成一个字符串,并将其用作解密/加密密钥。所以基本上:
key = concat(X2 - X1, Y2 - Y1, X3 - X1, Y3 - Y1, ...)
但我认为这种方法可能的组合很少(考虑到相对较小的卡片尺寸和相对较大的“手指”),并且可以轻松编写程序来生成所有可能的组合并立即破解密钥。我说得对吗?如果是这样,我该如何改进?
感谢您的意见
更新 1:实际上在 iOS 上试用过。结果并不乐观,因为每次检测到“手指”的方式都不同。它们之间的距离变化很大(多达 40 像素!)。所以我想这并不像我预期的那么容易,因为对于相同的两个圆圈,操作系统似乎每次都以不同的方式检测到触摸。
【问题讨论】:
-
既然这听起来像是您的目标是移动设备,您是否考虑过使用内置摄像头扫描矩阵代码?
-
这对最终用户(我)来说太麻烦了,而且 - 这是一个有趣的项目,关键字是“有趣”:) 这只是我想尝试的东西。
标签: security math multi-touch