如何实现可扫描但拍摄后失效的QR码?LMS课堂考勤防作弊咨询
防拍照伪造的QR码考勤解决方案
一、针对QR码本身的防拍技术
1. 动态刷新QR码(最靠谱的方案)
- 生成每隔10-30秒自动更新的SVG格式QR码,投影时循环刷新。学生只能扫描当场显示的实时码,照片里的旧码直接失效。实现起来很简单:前端定时请求后端生成新的签到URL对应的QR码,替换投影页面里的SVG即可,无需修改QR码的调色板。
- 同时给每个QR码设置短有效期,哪怕有人拍到照片,打开时也已经过期,无法用于签到。
2. SVG调色板防拍方案(静态码可选)
如果必须使用静态QR码,可以利用人眼和相机的视觉差异做特殊设计:
- 叠加高频细条纹:在SVG的QR码底层或顶层添加1px间隔的黑白高频条纹,人眼会自动忽略这些细线条,但手机相机拍摄后会产生摩尔纹,干扰QR码的黑白模块,导致无法识别。现场直接扫描投影时,因为距离近、光线适配,能正常识别。
- 投影专属色域配色:把QR码的黑色模块换成投影能准确显示,但手机相机拍摄后会失真的颜色,比如接近投影色域边缘的深靛蓝或暗绿色。相机拍摄后会因为色彩还原偏差,把这些深色模块拍成灰色,和白色模块对比度不足,破坏识别条件,但现场扫码不受影响。
- 注意:这种方案需要多测试几款手机和投影设备,避免出现现场也无法扫描的情况。
二、配套增强验证方案
- 实时人脸校验:学生扫码跳转签到页后,要求拍摄实时人脸,后端与学籍照片比对;同时可增加屏幕录制检测,判断是否是从照片扫码的静态画面。
- 课堂即时互动验证:签到后弹出只有现场学生才知道的问题(比如教师刚讲解的知识点),答对才算签到成功。
内容的提问来源于stack exchange,提问作者Ivica Pesovski
相关产品推荐
相关产品推荐

