文档章节

iOS传感器开发——为APP添加手机密码、指纹进行安全验证

珲少
 珲少
发布于 2015/12/10 16:38
字数 459
阅读 4523
收藏 101
点赞 6
评论 6

iOS传感器开发——为APP添加手机密码、指纹进行安全验证

一、引言

        iPhone5s之后,iPhone硬件上已支持进行指纹识别的功能,相应的,一些新的api也可以应用于APP中,进行用户安全的验证。目前,开发者可以使用的安全验证方式有两种,一种是通过手机密码进行验证,一种是通过识别指纹进行验证。

二、为APP添加安全验证

要使用安全验证的相关api,我们需要引入如下头文件:

#import <LocalAuthentication/LocalAuthentication.h>

添加手机密码验证:

    //创建安全验证对象
    LAContext * con = [[LAContext alloc]init];
    NSError * error;
    //判断是否支持密码验证
    /**
    *LAPolicyDeviceOwnerAuthentication 手机密码的验证方式
    *LAPolicyDeviceOwnerAuthenticationWithBiometrics 指纹的验证方式
    */
    BOOL can = [con canEvaluatePolicy:LAPolicyDeviceOwnerAuthentication error:&error];
    if (can) {
        [con evaluatePolicy:LAPolicyDeviceOwnerAuthentication localizedReason:@"验证信息" reply:^(BOOL success, NSError * _Nullable error) {
            NSLog(@"%d,%@",success,error);
        }];
        
    }

canEvaluatePolicy是用来判断是否支持手机密码验证的,如果没有设置手机密码,会返回NO,如果启用了,会出现如下界面:

密码验证的提示信息,我们可以自定义设置。

进行指纹验证:

LAContext * con = [[LAContext alloc]init];
    NSError * error;
    BOOL can = [con canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error];
    NSLog(@"%d",can);
    if (can) {
        [con evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"验证指纹" reply:^(BOOL success, NSError * _Nullable error) {
            NSLog(@"%d,%@",success,error);
        }];
        
    }

回调中的success用来判断是否验证成功:

通过这些验证方式,可以使用户的数据更加安全,在做敏感操作时,可以确保是手机的持有者。

专注技术,热爱生活,交流技术,也做朋友。

——珲少 QQ群:203317592

© 著作权归作者所有

共有 人打赏支持
珲少

珲少

粉丝 837
博文 375
码字总数 440447
作品 0
上海
iOS工程师
加载中

评论(6)

T
T_T-T_T
使用LAPolicyDeviceOwnerAuthenticationWithBiometrics这个属性的话,TOUCH ID 锁定之后不会弹出系统密码解锁页面,然而使用LAPolicyDeviceOwnerAuthentication这个的话会弹出系统密码解锁页面,但是点击“输入密码”也还是跳到系统密码解锁页面,却不能响应自定义事件。。我想实现当三次指纹错误或TOUCH ID 锁定之后自动弹出系统密码解锁页面,当点击“输入密码”能够响应自定义事件,就跟支付宝指纹支付功能一样,怎么办?
恶魔小猪
[10][10][10][11][9][18]
K6F
K6F
还是很有用的,可以更好的对敏感信息进行保护,在某些可以取代手势解锁了
r
renyi1986

引用来自“回去干活”的评论

这个只能本地验证,并没有什么用.
按理支付宝这样也没啥用,
回去干活
回去干活
这个只能本地验证,并没有什么用.
iOS传感器:App前后台切换后,获取敏感信息使用touch ID进行校验

今天咱们主要是说指纹识别传感器,在文章的最后也会顺带说一下距离传感器。 Touch ID是苹果公司的一种指纹识别技术。Touch ID不存储用户的任何指纹图像,只保存代表指纹的数字字符。iPhone ...

非典型技术宅
06/29
0
0
iOS-Security 苹果安全白皮书都讲了些啥?

2017.03.27 原文地址 使用Google 按段落翻译(上传文档的不太准),通读一遍后去掉设备或网络的超专业术语,也算是筛选掉对开发者意义不大的信息吧! 苹果设计的 iOS 平台向来是以安全为核心...

si1ence
2017/12/14
0
0
海淀出现大波送货机器人!快递小哥会下岗吗?

海淀出现大波送货机器人!快递小哥会下岗吗? 2018-06-20 18:27编辑: garace分类:AI来源:青亭网 海淀京东AI快递 招聘信息: C++工程师 Cocos2d-x游戏客户端开发 iOS开发工程师 京东招聘i...

garace
06/20
0
0
那些在学习iOS开发前就应该知道的事(part 1)

英文原文:Things I wish I had known before starting iOS development—Part 1 设计师设计出来了一个不错的引导界面,然而当我看到设计稿的时候,我们的app也没几天就要上线了。这个界面模...

TomatosX
2015/06/12
0
0
挖掘安卓宝藏,EMUI会让手机进入“量心定制”时代吗?

如果把移动终端的发展历程看做一部戏剧,那么Android和iOS两种操作系统生态之间的竞争一定是最精彩的一折。 从市场占有率来看,2017年Android手机在全球售出的手机中占据了85.9%份额,其中自...

脑极体
04/17
0
0
Ionic系列——调用系统电话

1、需求描述 在ionic项目用调用手机的打电话功能。开始还想找cordova和ng-cordova的插件那,现在H5实现起来特别方便。 2、准备 在cordova中所有的URL Schemes 都是服从于白名单的,所以要现在...

龙马行空
2015/08/14
0
0
iOS ZipperDown 漏洞来袭,我们该如何应对?

  昨天傍晚盘古实验室负责任的披露了针对 iOS 应用的 ZipperDown 漏洞,并提供了检索、查询受影响应用的平台: zipperdown.com。基于目前公开的信息,该漏洞的影响面比较大,15000 多个应用...

FreeBuf
05/16
0
0
如何做好iOS应用安全?这有一把行之有效的“三板斧”

本文由 网易云 发布 iOS应用面临很多破解问题,常见的有IAP内购破解、山寨版本、破解版本等;大众应用上,微信抢红包、微信多开等;而在iOS游戏上,越来越泛滥的外挂问题也不断困扰着游戏厂商...

wangyiyungw
05/15
0
0
xFace的快速入门--IOS

ios系统的快速入门和Android的大部分都差不多,模拟器这部分是一样的,只是player的使用上有点区别,今天就来看看ios设备的快速入门。 1、下载工具 便携版模拟器Emulator(Windows) 下载地址...

xFace3
2013/12/03
0
0
iOS Sprite Kit教程之申请和下载证书

iOS Sprite Kit教程之申请和下载证书 模拟器虽然可以实现真机上的一些功能,但是它是有局限的。例如,在模拟器上没有重力感应、相机机等。如果想要进行此方面的游戏的开发,进行程序测试时,...

大学霸
2015/07/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

编程语言对比分析:Python与Java和JavaScript(图)

编程语言对比分析:Python与Java和JavaScript(图): 凭什么说“Python 太慢,Java 太笨拙,我讨厌 JavaScript”?[图] 编程语言生而为何? 我们人类从原始社会就是用语言表达自己,互相沟通...

原创小博客
10分钟前
0
0
Akka构建Reactive应用《one》

看到这Akka的官网,描述使用java或者scala构建响应式,并发和分布式应用更加简单,听着很高级的样子,下面的小字写着消息驱动,但是在quickstart里面又写容错事件驱动,就是这么钻牛角尖。 ...

woshixin
22分钟前
0
0
ffmpeg源码分析 (四)

io_open 承接上一篇,对于avformat_open_input的分析还差其中非常重要的一步,就是io_open,该函数用于打开FFmpeg的输入输出文件。 在init_input中有这么一句 if ((ret = s->io_open(s, &s-...

街角的小丑
23分钟前
0
0
String,StringBuffer ,StringBuilder的区别

不同点 一、基类不同 StringBuffer、StringBuilder 都继承自AbStractStringBuilder,String 直接继承自 Object 2、底层容器“不同” 虽然底层都是字符数组,但是String的是final修饰的不可变...

不开心的时候不要学习
39分钟前
0
0
nodejs 文件操作

写文件code // 加载文件模块var fs = require("fs");var content = 'Hello World, 你好世界!';//params 文件名,内容,编码,回调fs.writeFile('./hello.txt',content,'utf8',function (er......

yanhl
41分钟前
0
0
SpringBoot mybits 查询为0条数据 但是在Navicat 中可以查询到数据

1.页面请求: 数据库查询: 2018-07-16 17:56:25.054 DEBUG 17312 --- [nio-9010-exec-3] c.s.h.m.C.selectSelective : ==> Preparing: select id, card_number, customer_id, customer_nam......

kuchawyz
51分钟前
0
0
译:Self-Modifying cod 和cacheflush

date: 2014-11-26 09:53 翻译自: http://community.arm.com/groups/processors/blog/2010/02/17/caches-and-self-modifying-code Cache处在CPU核心与内存存储器之间,它给我们的感觉是,它具......

我叫半桶水
53分钟前
0
0
Artificial Intelligence Yourself

TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流...

孟飞阳
今天
0
0
press.one个人数字签名

这是我在press.one的数字签名 https://press.one/p/address/v?s=9d3d5b7ce019af357ab994775549e8f047a5b17fc9893364652fc67e4b95443b38ccb24c6655e0d252dd0154369eb9b7717c4ccf4e1835ca3596......

NateHuang
今天
1
0
Oracle 中的 SQL 分页查询原理和方法详解

本文分析并介绍 Oracle 中的分页查找的方法。 Oracle 中的表,除了我们建表时设计的各个字段,其实还有两个字段(此处只介绍2个),分别是 ROWID(行标示符)和 ROWNUM(行号),即使我们使用...

举个_栗子
今天
4
2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部