在 Android 中使用生物识别(1),真是恍然大悟啊

△ 图 1: 未使用生物识别的授权流程

然而,图 1 这种授权方式有一些弊端:

  • 如果对于每次独立的会话都需要进行验证 (比如银行类的应用),那么这套流程会让用户感到非常繁琐,因为每次打开应用都需要输入一遍密码;

  • 如果验证发生在应用首次安装后打开时 (比如邮件类应用),那么拥有该设备的任何人都可以查看设备所有者的隐私内容,因为应用无法验证当前使用者是否为设备所有者本人。

为了弥补这些弊端,我们引入了生物识别身份验证的方式,为终端用户的身份验证流程提供了诸多便利。不仅如此,这套技术对开发者也更具吸引力,即使业务逻辑可能不需要用户频繁登录。使用生物识别身份验证带来的最关键的好处在于,整个认证过程十分简短,只需要轻按一下传感器或是看一眼设备就完成了。而作为开发者,您要确定您的用户必须要进行重新认证的频率,是一天一次,一周一次还是每次打开应用都需要重新认证。总而言之,我们提供的 API 封装了许多功能,使开发者及其用户获得更加友好方便的登录体验。

如今,许多处理个人数据的应用 (例如邮件或社交应用) 在安装后往往只需要进行一次性身份验证。这种做法普及起来,是因为每次打开应用都需要输入用户名和密码的方式对用户体验造成了不良影响。但若是使用了生物识别技术,用户便不再担心安全性的缺失。即使您的应用还是使用一次性的身份验证,也可以考虑定期进行生物特征识别,以验证是否为同一用户。验证周期的长短完全取决于开发者的设定。

  • 如果应用要求每次独立会话都需要进行验证 (或者是某些较为频繁的认证频率,例如每 2 小时一次或者每天一次等等),那么相比每次都手动输入密码进行验证的话,看一眼设备或轻按一下传感器这种方式就只是一种微不足道的操作。

  • 如果应用仅需在安装后进行一次性验证 (例如邮件类应用),那么添加生物识别功能的代价只是让用户多了一个拿起设备然后看一眼的操作,但却额外提供了更加安全的保障。

  • 如果用户希望无需额外进行验证,仍能够保持邮件的打开状态,那么应该提供选项允许这种行为。

对于想获得更多隐私保护的用户,生物识别功能能够提供额外的安心保障。无论哪种方式,同增加的收益相比,用户所付出的成本微乎其微。

使用 BiometricPrompt API 实现生物识别功能


通过 BiometricPrompt API,您可以在加密和不加密的情况下实现身份验证。如果您的应用需要更强安全性的保障 (例如医疗类或银行类应用),则可能需要 将加密密钥同生物特征绑定在一起 来验证用户的身份。否则您仅需向用户提供生物识别身份验证即可。两种方式的代码实现很类似,除了在需要加密时要用到 CryptoObject 实例。

加密版本:

biometricPrompt.authenticate(promptInfo, BiometricPrompt.CryptoObject(cipher))

复制代码

在上述代码中,我们向 CryptoObject 传递了 Cipher 参数,除此之外也支持其余加密对象,比如使用 Mac 或 Signature

不使用 CryptoObject 的版本:

biometricPrompt.authenticate(promptInfo)

复制代码

若要在 Android 应用中实现生物识别身份验证,请使用 AndroidX Biometric 代码库。虽然 API 可以自动处理不同的认证级别 (指纹、面部识别、虹膜识别等),但您仍然可以通过 setAllowedAuthenticators() 方法设置应用可以接受的生物认证级别,具体如下面的代码所示。Class 3 (以前被称为 Strong) 级别代表您希望使用生物识别来解锁存储在 Keystore 中的凭证;Class 2 (以前被称为 Weak) 级别代表您只需要使用生物识别来解锁应用,而不依赖于加密技术保护的凭证进一步进行身份验证。还有一个 Class 1 级别,但此级别在应用中并不可用。更多详情,请查看 Android 兼容性定义文档

尾声

以薪资待遇为基础,以发展为最终目标,要在高薪资的地方,谋求最好的发展!

下面是有几位Android行业大佬对应上方技术点整理的一些进阶资料。有**Android架构视频+BATJ面试专题PDF+核心笔记等资料。希望能够帮助到大家提升技术。如果大家想要获取的话,可以私信我【666】免费获取哦**

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

大厂面经、学习笔记、源码讲义、实战项目、讲解视频**
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
[外链图片转存中…(img-8MGSSATk-1711009978799)]

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值