科幻电影一直是人们津津乐道的话题,其中不乏一些经典场面,让观众为之震惊赞叹,例如《钢铁侠》中的悬浮虚拟触摸屏、《碟中谍》中的指纹虹膜识别等。

如今,这些看似高大上的科技也走进了我们的日常生活,像指纹与面容识别,其应用已经极为普遍与广泛。

当今社会对个人隐私的保护越来越重视,对App的安全性也提出了更高的要求,具备私密性与独特性的指纹与面容识别,就成为了强有力的保障。

当用户在解锁设备、支付、文件访问时,利用指纹或者面容认证,这在很大程度上减少了帐号盗取、信息泄露的风险。

HMS的FIDO提供了相关功能:开放基于WebAuthn标准的FIDO2客户端能力,提供本地指纹、面容认证开放能力,为应用提供安全可信的本地生物特征认证和安全便捷的线上快速身份验证能力。

其优势在于通过系统完整性检测和密钥校验机制保证结果安全可信,通用的无密码用户身份验证方案,易与现有帐号基础设施集成。

接下来,为大家说明如何集成指纹和面容认证能力。

主要的接入步骤如下:

  • 配置AppGallery Connect

  • 集成HMS Core SDK

  • 集成本地生物认证能力

步骤1、2可以参考超链接中的指导进行完成,这里不做赘述。

需要注意的是步骤2中提供了两种本地生物认证的SDK:
Bioauthn-AndroidX:

-

Java 代码

1 implementation 'com.huawei.hms:fido-bioauthn-androidx:5.2.0.301'

Bioauthn:

-

Java 代码

1 implementation 'com.huawei.hms:fido-bioauthn:5.2.0.301'

这两个SDK对外表现的能力略有不同。

主要表现在BioAuthn-AndroidX SDK的指纹认证能力提供统一界面,不需要应用自己绘制指纹认证提示界面;BioAuthn SDK的指纹认证能力不提供统一界面,需要应用自己绘制指纹认证提示界面。

可以参考官网FAQ中的说明:

这次我们主要介绍Bioauthn-AndroidX的集成,Demo可以在这里下载

集成本地生物认证能力

注:

请保证手机没有root过,不然无法使用指纹和面容能力

测试前请先保证手机中已经有相应的指纹和面容信息,否则会报相关的错误码。

可以在设置-生物识别和密码-指纹/人脸识别中添加相关指纹和面容

指纹认证

使用指纹认证分为两步:

1、初始化BioAuthnPrompt对象,代码如下:

BioAuthnPrompt bioAuthnPrompt = new BioAuthnPrompt(this, ContextCompat.getMainExecutor(this), new BioAuthnCallback() {@Overridepublic void onAuthError(int errMsgId, CharSequence errString) {showResult("指纹认证报错. errorCode=" + errMsgId + ",errorMessage=" + errString);}@Overridepublic void onAuthSucceeded(BioAuthnResult result) {showResult("指纹认证成功. CryptoObject=" + result.getCryptoObject());}@Overridepublic void onAuthFailed() {showResult("指纹认证失败.");}
});

2、创建提示信息,并进行认证。

// 自定义设置信息
BioAuthnPrompt.PromptInfo.Builder builder =new BioAuthnPrompt.PromptInfo.Builder().setTitle("主标题").setSubtitle("副标题").setDescription("内容描述");//允许使用其他认证方式
builder.setDeviceCredentialAllowed(true);BioAuthnPrompt.PromptInfo info = builder.build();//进行认证
bioAuthnPrompt.auth(info);

配置完成后就可以进行指纹认证了,认证页面如下:

面容认证

面容认证的限制条件比较多,具体请参考FAQ:

1、检查是否有相机权限(EMUI10.1及以后版本不需要相机权限)

int permissionCheck = ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA);
if (permissionCheck != PackageManager.PERMISSION_GRANTED) {showResult("请先申请相机权限");ActivityCompat.requestPermissions(MainActivity.this, new String[] {Manifest.permission.CAMERA}, 1);return;
}

2、检查当前设备是否支持人脸识别

FaceManager faceManager = new FaceManager(this);int errorCode = faceManager.canAuth();
if (errorCode != 0) {resultTextView.setText("");showResult("不支持人脸识别. errorCode=" + errorCode);return;
}

3、进行人脸认证

int flags = 0;
Handler handler = null;
CryptoObject crypto = null;faceManager.auth(crypto, cancellationSignal, flags, new BioAuthnCallback() {@Overridepublic void onAuthError(int errMsgId, CharSequence errString) {showResult("认证报错. errorCode=" + errMsgId + ",errorMessage=" + errString+ (errMsgId == 1012 ? " 没有相机权限." : ""));}@Overridepublic void onAuthHelp(int helpMsgId, CharSequence helpString) {showResult("返回识别过程中提示信息. helpMsgId=" + helpMsgId + ",helpString=" + helpString + "\n");}@Overridepublic void onAuthSucceeded(BioAuthnResult result) {showResult("认证成功. CryptoObject=" + result.getCryptoObject());}@Overridepublic void onAuthFailed() {showResult("认证失败.");}
}, handler);

这样人脸识别的代码就完成了,调用后就会进行人脸认证。
需要注意的是人脸认证没有默认的UI页面,需要我们自己去设计配置。

使用场景

指纹认证

一般来说指纹认证是用在支付场景的,用户付款前可以使用指纹认证来进行安全检测。

指纹认证也可以用在文件保护App里,只有指纹认证通过才可以查看相关文件。

面容识别

面容识别也可以在支付场景和文件保护APP中使用,这个不再赘述

在文件保护APP方面,面容识别的效果会比指纹表现的更出色。

因为文件保护App有一个通病,那就是“此地无银三百两”,摆明了告诉别人你这个文件很重要或很敏感。

所以其他人只要搞定了你的指纹(虽然也比较困难),那就畅通无阻了。

那么文件保护App除了可以在明面上展示指纹识别外,还可以“悄悄地”再做一层面容识别(面容识别不需要设计UI界面),只有指纹识别和面容识别都过了,才展示正确的文件,否则可以展示假文件。

这样做的话就可以更好的保护用户的隐私。

具体的人脸识别的代码实现可以是下面这样的:

faceManager.auth(crypto, cancellationSignal, flags, new BioAuthnCallback() {@Overridepublic void onAuthError(int errMsgId, CharSequence errString) {if(isFingerprintSuccess){//指纹认证成功但面容识别失败//展示假文件showFakeFile();}}@Overridepublic void onAuthHelp(int helpMsgId, CharSequence helpString) {}@Overridepublic void onAuthSucceeded(BioAuthnResult result) {if(isFingerprintSuccess){//指纹认证成功//展示真文件showRealFile();}else {//指纹认证失败//展示假文件showFakeFile();}}@Overridepublic void onAuthFailed() {if(isFingerprintSuccess){//指纹认证成功但面容识别失败//展示假文件showFakeFile();}}
}, handler);

>>访问华为FIDO官网,获取FIDO开发文档

>>访问华为开发者联盟官网、开发指导文档

>>华为移动服务开源仓库地址:GitHub、Gitee

原文链接:developer.huawei.com/consumer/cn…

原作者:胡椒

破译《碟中谍》经典画面,解密指纹验证+刷脸!相关推荐

  1. 《碟中谍5》中惊鸿一瞥的步态识别技术,究其神在哪里?

    <碟中谍5>中惊鸿一瞥的步态识别技术,究其神在哪里? 电影<碟中谍5>中,黑客班吉起初并未把门禁放在眼里,当他得知必须经过"步态识别系统"的监测时,最后只能 ...

  2. GeekPwn再现碟中谍场景 黑客肆意控制智能摄像头

    控制所有的摄像头,或开或关,或拍摄本不该有的画面--你以为这种黑技术只有<碟中谍>这类好莱坞大片中才有.其实,GeekPwn 2015现场就真真切切的出现了这一幕幕只有电影中才有的场景. ...

  3. 科技版《碟中谍》:偷鸡摸狗的科技巨头们

    说到世界著名的科技巨头,不管是苹果三星还是微软谷歌,咱们应该都非常熟悉.咱们用着这些巨头的硬件或者软件,内心对他们的印象往往都会有些小光环,觉得科技巨头们都是光鲜亮丽的. 然而但凡是商业企业,骨子里必 ...

  4. 《碟中谍5》背后的生物识别技术大比拼

    <碟中谍>这部电影里面总是充满极具未来色彩的黑科技,尤其是各种炫酷的生物识别技术,总使人脑洞大开,比如用虹膜解锁拯救世界的紧急任务. <碟中谍>这部电影里面总是充满极具未来色彩 ...

  5. 中科院谭铁牛爱徒研发出《碟中谍5》中的步态识别技术,不看脸50米内在人群中认出你

    <碟中谍5>中惊鸿一瞥的步态识别技术,究其神在哪里? 电影<碟中谍5>中,黑客班吉起初并未把门禁放在眼里,当他得知必须经过"步态识别系统"的监测时,最后只能 ...

  6. [图文]解读《碟中谍4》中的人脸识别技术

    转自:http://www.shengwushibie.com/Article/Doc/201202/747.shtml 在茫茫人海的火车站走来走去,只要一眨眼的功夫已经被认出,随即被特工盯梢:迎面相 ...

  7. VRWERX将打造《碟中谍》系列VR游戏,让你与阿汤哥一起战斗和冒险

    玩家可以在游戏中实现奔跑.攀爬.战斗以及各种酷炫无比的战斗动作,就如同身置电影之中. 近日,VR内容开发商VRWERX给动作片<碟中谍>的影迷带来一个激动人心的好消息--将基于<碟中 ...

  8. 《碟中谍5》的科幻场景变为现实,银河水滴要用步态识别实现身份认证

    不知道看过<碟中谍5>的朋友对其中一个场景是否还有印象:阿汤哥的搭档在破解了指纹解锁.三重物理旋转密码锁挑战后,迎来了"步态识别锁".这项挑战无疑是对生物体的身体及步态 ...

  9. 电影《碟中谍7:致命清算(上)》观后感

    上周看了电影<碟中谍7:致命清算(上)>,从电影名称就知道,这部电影会有下部,讲述科学进步之后,有AI引发的技术变革,出现了一种AI变体叫做智体的东西,它有自主意思,存在于数组世界中. 很 ...

最新文章

  1. (转)python3 计算字符串、文件md5值
  2. swap关于指针的使用
  3. java taken_java-是否有正确的方法在slf4j中传递参数?
  4. mysql5.7存储过程实例_MySQL 存储过程简单实例
  5. 操纵浏览器的历史记录
  6. java基础 第四章 下(数组)
  7. android image 位移动画_Android共享元素转场动画实现
  8. php中sql语句有啥用,php中sql语句
  9. ArcGIS10.8版本的下载安装及其注意事项
  10. 如何构建GCC交叉编译器
  11. 第一篇博客--随便聊聊
  12. Python类的继承
  13. 苹果安装app的另一种方式(通过itms-services协议,不通过AppStore,直接安装IOS应用程序)
  14. AAE 2018:Picsolve以全新拍摄体验增强亚洲景点的吸引力
  15. MEION:QA-MSK调制问题
  16. Conda / Anaconda : UnavailableInvalidChannel The channel is not accessible or is invalid.
  17. Mozilla 考虑从 Firefox 剥离 XUL 和 XBL
  18. 笔记本电脑点开都是计算机,笔记本电脑所有程序都打不开怎么办
  19. 【解决阿里云服务器提示挖矿程序风险2022】
  20. 如何简单易懂的了解什么是区块链?

热门文章

  1. 有一种异性朋友叫温暖
  2. C语言实现简易扫雷小游戏
  3. vr测试速度软件,《VRMARK》首款电脑VR性能测试软件上架steam-VR之家
  4. 百度搜索和百度信息流有什么区别?
  5. elastica php yii,Yii 1.1.*集成elasticsearch php 客户端Elastica
  6. 亚信大数据平台产品经理 杨晋:大数据是怎么应用于技术方面的
  7. ArrayDeque(双端队列的线性实现)详解
  8. ERROR 1118 (42000): Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ...
  9. FX3U基本指令学习
  10. [竞赛图判定定理]兰道定理(Landau's Theorem)介绍及其一种证明