iOS 图形验证码的开发与使用注意

2018年到了。新年伊始,我们的APP就被人盯上了,不断有人狂刷发送验证码,一天刷了几万次。虽然后台也做了限制,拦截了一大部分请求,苦于对方Ip一直在变,技术不够不能将其彻底杀死。我们添加了图形验证码来解决这个问题,后期还会优化服务端请求,采用更加安全的方式,先来介绍图形验证码吧。

思路:根据随机数获取图形验证码,然后校验图形验证码,校验通过则允许发送验证码;

随机数的生成规则:后台自定义规定的,我们是32位字母加数字,字母大写
贴上我的随机数生成:

  • (NSString *)return32LetterAndNumber:(NSInteger)num{
    //定义一个包含数字,大小写字母的字符串
NSString * strAll = @"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
NSString * result = [[NSMutableString alloc]initWithCapacity:num];
for (int i = 0; i < num; i++){
    NSInteger index = arc4random() % (strAll.length-1);
    char tempStr = [strAll characterAtIndex:index];
    result = (NSMutableString *)[result stringByAppendingString:[NSString stringWithFormat:@"%c",tempStr]];
}
return result;

}

开发中遇到一些小问题,测试说图形验证码输入正确后点击键盘的done,却显示检验失败。我调试看到系统键盘点击done时发现,你正确输入的关键词是第一个,但是默认选中的是第二个推荐词!
出现两个问题:
1、text filed 有个特性,手动选择第一个推荐词他会在后面自动添加一个空格,导致校验失败;
2、点击键盘的done ,很容易忽略键盘选中提交的是第二个关键词也校验失败
。 如图所示:


Snip20180117_5.png

解决办法;
将textField 的推荐关键词功能关掉,以前一直忽略的这个属性;
代码是:
{
textField.autocorrectionType = UITextAutocorrectionTypeNo;
}
这样就能完美解决这个图形验证码的问题拉

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 我和他之间,没有摩擦和误会,回想一下,和他相处的日子真是-快乐, 后来不知道怎么回事就慢慢变了,我和他都没变,我们...
    橘色_3314阅读 117评论 0 2
  • 三年级的小人儿,兴高采烈的背回来一堆书 ,见到我就兴冲冲地拿出一本大书,眉开眼笑的大声对我说:“老妈,我们要学英语...
    方娥阅读 605评论 3 0
  • 今天学习了课前自学,最后一集,乾坤格的特点和使用方法。吴教授说,乾坤格的设计,是为了让大家学习书法能够,更高...
    茶r阅读 777评论 0 0

友情链接更多精彩内容