鎴戣鎶曠ǹ
鎮ㄧ殑褰撳墠浣嶇疆锛主页 > 最新案例 >

iOS指纹登陆

鏃ユ湡锛2019-06-25 06:10 鏉ユ簮:未知 浣滆:admin

  随着智能时代的来临,人们越来越习惯于将重要信息和个人隐私存放于智能手机中。这时手机数据的安全性就变得尤其重要。通常我们使用口令或密码来保护设备,但是随着iPhone和Android手机硬件的逐步升级与支持,使用指纹验证成为了代替密码的一种常规方法。

  指纹验证是指通过手机中的触摸传感器来识别用户。通过这种技术我们可以使用指纹解锁设备或在应用中通过指纹授权使用例如指纹登录或指纹支付等功能。

  指纹验证是一种更加快捷方便的方法来验证用户身份。传统校验用户身份的方法,通常是使用密码或口令,要想越安全就需要使用越复杂的密码。相较于输入冗长且复杂的密码,指纹识别仅仅需要的是使用指尖触碰传感器完成验证。这无疑能给用户带来更加顺畅的使用体验。

  指纹不会被遗忘。如上一条所说,通常密码都是冗长且复杂的,尤其是不常使用的密码,很容易在一段时间后被用户忘记。而使用指纹识别则完全没有这种烦恼,你可以随时使用指纹验证。

  指纹验证无需找回功能。由于指纹永远不会被遗忘,也不会改变。通常密码找回的功能对于指纹验证来说就毫无意义。

  指纹验证更加安全。通常为了方便记忆密码,用户倾向于使用方便记忆的信息(比如生日)来生成密码,这让密码变得很容易被破解。而即便使用了较为复杂的密码,也无法保证其拥有和指纹一样的独特性和安全性。一旦密码被泄露或盗取,其他人能轻易获取到用户信息。

  在iOS硬件设备上的HOME按键由蓝宝石水晶制成,能作为透镜获取到你手指皮肤下纹理的高清图片

  Touch ID会通过你传入的一系列指纹图片,通过算法生成出属于指纹的数字标识,存储于特殊的芯片上

  Touch ID只会存储通过指纹图片生成的数字标识,所以不用担心你真实的指纹泄露。由于指纹的独特性,Touch ID算出的数字标识能相同的概率是50000之1,就是50000个不同指纹才可能会有一对可以通过Touch ID相互匹配。所以Touch ID是一项足够安全的技术。

  如在介绍Touch ID时介绍的一样,Touch ID不会存储任何关于指纹的图片,而是存储的指纹标识。不过即使是这些数字标识也被iOS存储于一块叫做Secure Enclave(安全领域)的芯片上。你的指纹信息只会被用于比对是否与设备中存储的指纹信息进行比对,不能被操作系统,更不会被其他应用访问。这些信息也不会上传到苹果的服务或者被iCloud等云服务备份,不可能被用于与其他的指纹库进行比对。

  LocalAuthentication framework是我们的app来使用iOS设备上生物信息验证(Touch ID或者Touch ID)的机制。上文已经介绍过,为了最大限度的保护用户信息的私密性和安全性,iOS上使用了Secure Enclave的方式来将验证数据与设备上的其他系统隔离。用户的认证信息甚至无法被操作系统访问,我们通过认证得到的只是一条布尔值的结果。

  当需要存储私密信息时,你可以使用Keychain。Keychain是由iOS的Security framework提供的服务,你可以设置keychain中元素的访问权限为每次去读取这项数据时都需要用户的认证(通过Face ID或者Touch ID)。当每次去请求keychian中数据访问权限时,LocalAuthentiation Framework会通过系统展示相应的界面提示用户录入数据,然后将这些数据传入Secure Enclave进行比对。比对结束后,Secure Enclave会成功或失败的结果返回。其间用户或者操作系统都不会也不能获取到用户的指纹信息。

  现在很多安卓手机已经内置了触摸传感器,所以安卓在最新发布的Android 8提供了BiometricPrompt来提供指纹识别或面部识别的支持。Android 6以后的版本也可以使用FingerprintManager来提供指纹识别的支持。

  安卓的Keystore System用于存储加密的Keys,不过不同于安卓的KeyChain。这些信息只能用于自己的应用中。

  我们通过指纹识别能获取到只是指纹是否匹配,并不能得到其他与指纹信息有关的结果

  在此基础上,初步设计了指纹识别的流程。iOS和安卓在指纹识别上的流程由于API的限制不尽相同,但是大概的步骤基本一致:

  如果步骤2成功获取到用户密钥,即用户已经绑定了指纹登陆,那么获取用户密钥登陆

  如果步骤2未能获取到用户密钥,即用户还未绑定指纹登陆,那么开始绑定指纹的流程

  绑定指纹的流程可以分为前端和后端的工作,先由后端生成用户登陆所需的独特密钥传回给前端

  在用户使用指纹登陆之前,需要用户先开启指纹登陆功能。开启指纹登陆的具体步骤可细分为以下步骤。

  判断当前设备是否支持指纹识别,如果支持,在合适的时机提示用户是否开启指纹登陆,可以在用户成功登陆后或设置界面展示相应的界面提示用户开启指纹登陆。

  当用户点击开启指纹登陆时,iOS设备通过LocalAuthentication framework调起系统指纹认证界面,如果认证通过向服务端发起开启指纹登陆的请求。

  iOS端收到服务端的响应,将其中的密钥解析出来,存储于Keychain中,并设置为只能通过TouchID访问。并将用户名和指纹识别开启状态存储于UserDefault中。

  在用户开启了指纹登陆功能后,就可以在登陆时试用指纹登陆。指纹登陆的步骤为:

  判断当前设备是否支持指纹识别,如果支持,检查设备UserDefault中的数据,判断当前用户是否开启指纹登陆。

  如果当前用户开启了指纹登陆,调起系统指纹认证界面,申请访问Keychain的权限,如果认证成功从Keychain中尝试取得存储于keychain中的用户密钥。

  iOS的Demo工程已经上传至git,由于实际应用情况所有请求走的是SSL通道,所以并没有设计数据加解密的内容。如果需要,可以自行在向服务器请求生成密钥时,通过RSA算法生成public key传递给服务器作为密钥的加密key。

  简介TouchID是苹果公司的一种指纹识别技术,从iPhone5s开始,早已为人们所熟知。TouchID不存储用户的任何指纹图像,只保存代表指纹的数字字符。苹果公司提供TouchID给第三方应用程序使...博文来自:weixin_33787529的博客

  摘要:指纹识别技术作为生物识别技术中最为具有应用前景的技术之一,近年来取得了长足的发展,并广泛应用于各种场合。由于指纹所具有的唯一性和不变性,以及指纹识别技术具有很高的可行性和实用性,指纹识别成为目前...博文来自:shiter编写程序的艺术

  一、概述Android下的指纹识别是在Android6.0后添加的功能,因此,在实现的时候要判断用户机是否支持,然后对于开发来说,使用场景有两种,分别是本地识别和跟服务器交互;1.本地识别:在本地完成...博文来自:Jacky_Can的博客

  现在做的这个项目有密码登录和手势登录,最近又要新增一个指纹登录,所以就想把这一块好好梳理一下,好好总结一下。1.密码登录:登录用户名为手机号或者邮箱,手机号码按照344分隔,所以就需要用正则表达式去校...博文来自:xiaolinlife的博客

  转自:仁伯安简书苹果设计的iOS是以安全性为核心的,不管是沙盒机制,还是代码签名等,他们的最终目的都是为了安全。...博文来自:Evan

  最近在写一个demo,打算实现指纹验证以及人脸识别(手势解锁网上demo很多所以不打算集成,很抱歉并没有嘲讽大神们的技术结晶的意思,只是解锁方式择其二就行了),本篇只是记录一下初次学习指纹识别的过程以...博文来自:神隐

  一、概述Android下的指纹识别是在Android6.0后添加的功能,因此,在实现的时候要判断用户机是否支持,然后对于开发来说,使用场景有两种,分别是本地识别和跟服务器交互;本地识别:在本地完成指纹...博文来自:GM的博客

  部分效果图效果图1效果图2启动效果图3一.指纹识别简析苹果设计的ios是以安全性位核心,不管是沙河机制还是代码签名,指纹识别,最终目的都是为了安全.自iPhone5S开始,苹果公司推出全新生物安全识别...博文来自:weixin_34224941的博客

  创建一个具有管理员权限的用户,并注册指纹导入内置的管理员账户准备事项:1、给当前的管理员用户建立密码;2、如果之前录了指纹,在指纹识别软件中删除所有指纹;3、打开控制面板---硬件和声音---生物特征...博文来自:WHO ARE YOU

  因为公司项目里需要用到指纹识别,就是类似于QQ那种的从后台进入前台后验证的。但是我发现通过指纹识别验证成功之后,如果是类似QQ那种模态出来的视图,会很快的收回去。但如果是导航控制器Push出来的视图,...博文来自:ZzzzzzXJ的专栏

  最近学习swift3.0,不忙的时候开始用swift重写现有的项目,有些地方的写法变得让人不知道怎么写了,今天就分享一下我在重写指纹解锁工具类的时候遇到的一些问题吧。...博文来自:zxw_xzr的博客

  C#语言编写的指纹验证程序,录入指纹到数据库进行存储,然后进行比对,代码附有详细注释;资源也提供了win10可用的指纹仪驱动和ocx控件以及建立的数据库测试文件;下载

  背景简单来讲,设备指纹是指可以用于唯一标识出该设备的设备特征或者独特的设备标识。设备指纹包括一些固有的、较难篡改的、唯一的设备标识。比如设备的硬件ID,像手机在生产过程中都会被赋予一个唯一的IMEI(...博文来自:FRMer的博客

  一、信息指纹的由来信息有“指纹”吗?信息要“指纹”做什么呢?“指纹”一般特指我们识别人所采用各种方式的一个总称。生活中我们需要辨认出周围的每一个人,即使是非常相似的双胞胎,因为辨别是我们进行相互交流的...博文来自:fedora

  我发现了一个比较怪的现象。在iPhone上使用十分普遍的指纹认证功能,在Android手机上却鲜有APP使用,我简单观察了一下,发现Android手机上基本上只有支付宝、微信和极少APP支持指纹认证功...博文来自:郭霖的专栏

  指纹识别和面部识别公用这一段代码即可,系统会自动判断当前设备支持指纹识别还是面部识别。1.导入框架#importlt;LocalAuthentication/LocalAuthenticat...博文来自:萤火虫儿飞

  转自:你还在为开发TouchID/FaceID识别功能而去翻阅大量的文档吗?使用YZAuthID仅需一个回调方法即可轻松实现...博文来自:Gabriel的专栏

  一、概述Android下的指纹识别是在Android6.0后添加的功能,因此,在实现的时候要判断用户机是否支持,然后对于开发来说,使用场景有两种,分别是本地识别和跟服务器交互;本地识别:在本地完成指纹...博文来自:栀夏暖阳的博客

  在iPhone5s(iOS8)加入TouchID后,指纹识别的功能在App中逐渐受到青睐,特别是对于本地安全较高的应用(如带支付的App)指纹识别是必备的功能,它既能解决在验证过程中输入密码的繁琐过程...博文来自:heqiang2015的博客

  在这边提供一些指纹和面容支付的基本思路,差异以及所遇到的坑。一、支付逻辑基本思路我们重点是考虑如何保证支付的安全,首先肯定不能本地存入用户的支付密码,这样在人行(中国人民银行)来检查的时候是行不通的,...博文来自:哔哔哔的专栏

  指纹识别必须ios8以上真机,面部识别据说同一套API没有支持面部识别的机器,没有测试,直接贴代码了,注释比较清晰,关键点在于业务逻辑,由于指纹识别只是类似授权自动登录,所以那些账户密码。必须存储,在...博文来自:书弋江山的博客

  iOS实现指纹识别本人不经常更新博客,对于百度,谷歌一搜就能找到的基础知识一般不发表在博客上,今天分享一下指纹识别功能,每次进入进入应用都需要进行指纹识别,(适合金融类app,安全性可极大提高):不废...博文来自:niuhailei的博客

  指纹解锁概念据人指纹验能解锁否技术,类似通输密码解锁,都通一定数字特征解锁。原理首先每人每指纹信息都独一无二,皮肤纹路在图案、断点、交叉点各不同,通光学感应读出指纹图片信息亦独一无二。先存一人指纹特征...博文来自:snpmyn

  指纹测试软件。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。下载

  在google上面搜索图像识别的时候,搜到一篇好文章,在这里翻译一下,所有版权来源于博文来自:mago的专栏

  本博客包含了如何实现iOS手势密码、指纹密码、faceID全步骤,包括了完整的代码。先附上demo地址,支持swift3.0...博文来自:柳玉豹的博客

  没什么好说的,iOS8.0以后才推出的先判断一下系统版本,在判断一下当前设备是否支持指纹解锁LocalAuthentication.framework有一整套的交互,指纹不行输入密码之类的,都封装好了...博文来自:本王的棒棒糖呢的博客

  现在有个项目需要能够通过指纹登陆jsp系统,各位有谁做过类似模块,希望能提供一个想法,有源码更佳!...博文来自:iteye_7708的博客

  最近公司的app要使用指纹支付了;总体来说还是蛮顺利的;但是中间有遇到一些坑;下面就对坑进行汇总;一.基本知识点开这个LocalAuthentication.framework,发现里面主要有这么几个...博文来自:THEWAILKINGDEAD

  简介苹果从iPhone5S开始,具有指纹识别技术,从iOS8.0之后苹果允许第三方App使用TouchID进行身份验证。指纹识别TouchID提供3+2共5次指纹识别机会(3次识别失败后,弹出的指纹验...博文来自:努力,可能成功!放弃,注定失败!

  在android6.0中google终于给android系统加上了指纹识别的支持,这个功能在iPhone上早就已经实现了,并且在很多厂商的定制的ROM中也都自己内部实现这个功能了,这个功能来的有点晚啊...博文来自:Android Fans

  FaceIDiPhoneX提供的刷脸功能与之前的设备的TouchID类似,都是属于生物验证的范畴。苹果爸爸也是为了照顾开发者,这两个功能对应的API基本相同,对于之前支持TouchID的APP其实可以...博文来自:董志强的博客

  一、概述Android下的指纹识别是在Android6.0后添加的功能,因此,在实现的时候要判断用户机是否支持,然后对于开发来说,使用场景有两种,分别是本地识别和跟服务器交互;本地识别:在本地完成指纹...博文来自:jiashuai94的博客

  第三方读取指纹必须是在ios8以上首先导入TouchId的必须库 #import 这个库必须要Xcode6并且连接的是真机,才不会提示找不到的错误,即使不是iPhone5s都行.如果是模拟器会提示找不...博文来自:wslzxql的专栏

  本文通过一个简单的例子,讲解了如何使用iOS8SDK中的TouchID指纹识别功能。博文来自:Puzhi的专栏

  最近很多人问,如何将内网的摄像机流媒体数据发布到公网,如果用公网与局域网间的端口映射方式太过麻烦,一个摄像机要做一组映射,而且不是每一个局域网都是有固定ip地址,即使外网主机配置好了每一个摄像机的映射...博文来自:Babosa的专栏

  一、图像内插-最近邻内插法 1、数学原理      当一幅二维数字图像从源图像N*M被放为(j*N) * (k*M)目标图像是,参照数学斜率计算公式      必然有: (X1 – Xmin)/...博文来自:清风似水流的专栏

  帐号相关流程注册范围 企业 政府 媒体 其他组织换句话讲就是不让个人开发者注册。 :)填写企业信息不能使用和之前的公众号账户相同的邮箱,也就是说小程序是和微信公众号一个层级的。填写公司机构信息,对公账...博文来自:小雨同学的技术博客

  本文介绍了如何在超图桌面平台通过倾斜摄影模型提取DSM、DOM数据。博文来自:SuperMap技术控

  LCD RGB 控制技术讲解 — 时钟篇(上)个人笔记,欢迎转载,请注明出处,共同分享 共同进步 博文来自:人有三样东西是无法隐瞒的,咳嗽,穷困和爱,你想隐瞒越欲盖弥彰

  mybatis简单的CURD就不用多说了,网上相关博客文档一大堆。分析一下Mybatis里面的collection聚集查询。 假设一个班级有多名学生为例,通过班级号查询出该班级的信息,和班级里面的所...博文来自:minpann的博客

  简单集成了新浪微博、腾讯微博、微信,提供SSO登录和发送消息的基本功能阅读数1776

  jj0796:楼主你能发我一份么,github上下载不了,让我新手学习一下。我的QQ邮箱是

  cool220:楼主能发我一份么,我去git上下载,发现你这个是属于私人,我下载不了,先谢过啦

  u011593648:cocos2dx-2.2.2 json解析方式换了。新手编译时总是报josn错误。

鐑棬鎺ㄨ崘
闅忔満鎺ㄨ崘
鏈鏂版枃绔