# verify-code **Repository Path**: zsljava/verify-code ## Basic Information - **Project Name**: verify-code - **Description**: 拖动验证码 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2017-08-04 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 拖拽验证码 #### 修改api接口地址 resources/static/verify-code.js 中base_url = 'http://ip:port' #### resources文件目录说明 defverify/artwork 项目中初始化存放的原图目录,会将该目录文件拷贝到artworkDir目录 defverify/orgRepair 项目初始化存放的修复图目录,会将该目录文件拷贝到orgRepairDir目录 static/proving 验证的js static/ 静态资源目录 view/ html页面 #### application.yml 自定义配置说明 folder: initDir: true #重新初始化目录,会将resource/defverify目录下的图片覆盖base目录 baseDir: base目录 artworkDir: 原图目录 repairDir: 原修复图的目录 verify: img: offset: 移动图片的偏移量 criticalityValue: 最小临界值 createValue: 小于临界值后一次生成多少张验证图,(建议为10的倍数,会将个数/10,分配给10个线程完成) #### 验证过的文件删除 当前建议使用Linux定时器 crontab -e,定时执行脚本删除。 (7代表删除7天前文件,改成1就是1天前文件) find 生成的验证码目录(folder.whole) -mtime +7 -exec rm -rf {} \; find 生成的修复图目录(folder.repair) -mtime +7 -exec rm -rf {} \; #### Linux 优化 查看每个用户最大允许打开文件数量(66535) ulimit -a 其中 open files (-n) 1024 表示每个用户最大允许打开的文件数量是1024 设置open files数值方法 ulimit -n 2048 永久设置方法 vim /etc/security/limits.conf 在最后加入 * soft nofile 4096 * hard nofile 4096 最前的 * 表示所有用户,可根据需要设置某一用户,例如 testuser soft nofile 8192 testuser hard nofile 8192 改完后注销一下就能生效。 ** 注意读流后一定要关闭,否则即便设置最大打开文件数 依旧会出现 too many open files 错误 ** #### 二次校验(http://ip:port/v1/auth/{authId}?appId=xxx×tamp=xxx&signature=xxx) authId: 页面验证成功,返回给页面的本次验证id appId: 您的应用id timestamp: 时间戳 appKey:appkey 请勿用于网络传输 signature: md5(authId_appKey_timestamp) 中间用下划线链接 #### 返回结果含义: | 返回值 | 含义 | |-----|-----| | code | 1 成功 0 失败 | | msg | 消息 | | data | 返回验证信息 | | id | authId本次验证的id | | authStartTime | 开始验证时间 | | authStopTime | 结束验证时间 | | authTime | 验证用时 | | status | 验证状态 | | reasonCode | 验证状态原因 | | ip | 验证用户的ip | #### 错误状态码: | reasonCode | reason | |-----|-----| | 1000 | authId、appId、timestamp、signature 不能为空 | | 1001 | 验证码已失效 | | 1002 | 请移动到对应的位置 | | 1003 | 验证码已失效 | | 1004 | 验证失败 | | 1005 | signature 错误 | | 1006 | 可能存在临界值攻击行为 | | 1007 | 时间戳有效时间为10s已超时 | | 1008 | 验证不存在 | | 9999 | 验证成功 |