当前位置: 首页 > news >正文

app指纹登录 java后端_Android应用实现指纹登录

Android指纹是在API23版本之后加入的,以及大多数的Android6.0系统都有硬件支持。

一:指纹Demo:

1、:检测AndroidAPI是否大于等于23

2、:检测硬件是否支持

3、:设备是否录入指纹

4、:开始认证

5、:处理认证结果

二:服务器交互

1、数据上传

2、登录验证

3、加密处理

一:实现指纹demo

实现指纹demo 很简单。理解并调用以下API就可以实现。

相关类:

1.FingerprintManager:主要用来协调管理和访问指纹识别硬件设备

2.FingerprintManager.AuthenticationCallback这个一个callback接口,当指纹认证后系统会回调这个接口通知app认证的结果是什么

3.FingerprintManager.AuthenticationResult这是一个表示认证结果的类,会在回调接口中以参数给出

4.FingerprintManager.CryptoObject这是一个加密的对象类,用来保证认证的安全性

开始扫描用户按下的指纹

调用authenticate()函数;

@RequiresPermission(USE_FINGERPRINT) //限定需要权限

public void authenticate(

@Nullable CryptoObject crypto, //加密类对象;

@Nullable CancellationSignal cancel, //用来取消当前扫描操作(30s才超时);

int flags, //标识位,暂时设置为0即可;

@NonNull AuthenticationCallback callback, //认证结果回调;

@Nullable Handler handler) //使用handler的Looper处理指纹识别硬件的信息;为null,则使用app的main Looper处理;

大多数Demo中使用指纹都是请求认证指纹,获得结果,根据结果做下一步的工作。

不多说直接上代码吧!

MainActivity extends FingerprintManager.AuthenticationCallback {

}

画重点:

CrytoObject对象是基于Java加密API的一个包装类,

并且被FingerprintManager用来保证认证结果的完整性。通常来讲,用来加密指纹扫描结果的机制就是一个Javax.Crypto.Cipher对象。Cipher对象本身会使用由应用调用Android keystore(Android提供的一个用来保存 Key-Value的文件)的API产生一个key来实现上面说道的保护功能。

5602c7d73753

Android 指纹解密.png

、、、

5602c7d73753

Android指纹加密.png

相关文章:

  • 有一家银行每天早上都在我的帐户里存入¥86,400
  • java 解析 树_java-斯坦福大学nlp:解析树
  • mysql 行号 hibernate_Web项目从Oracle转为Mysql,fluentnhibernate-1.0和NHibernate2.1.0升级到NHibernate3.3的注意事项...
  • 快速访问系统文件夹
  • 让“龙头”与“长尾”共舞 - 长尾理论在Web2.0网站中的应用
  • mysql数据库部署回退文档_mysql数据库主从复制部署笔记
  • 感谢Candy
  • java包装类转换12_JAVA_包装类的使用与包装类数据类型转换
  • 关于JMS的编程模型
  • Java如何把md转为html_Java使用PegDown将markdown文件转成html格式
  • Web开发专家(Sank Orange的专栏)
  • php函数接口什么意思_php函数是什么意思
  • .net专家(高海东的专栏)
  • 年龄php,PHP根据生日计算年龄两种方法(周岁)
  • weblogic中两种不同的运行wlst脚本的方式
  • JavaScript-如何实现克隆(clone)函数
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 30秒的PHP代码片段(1)数组 - Array
  • 345-反转字符串中的元音字母
  • Asm.js的简单介绍
  • C++入门教程(10):for 语句
  • CSS 专业技巧
  • interface和setter,getter
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • php面试题 汇集2
  • Selenium实战教程系列(二)---元素定位
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • windows下使用nginx调试简介
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 反思总结然后整装待发
  • 聊聊sentinel的DegradeSlot
  • 深入浏览器事件循环的本质
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 学习使用ExpressJS 4.0中的新Router
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • ​queue --- 一个同步的队列类​
  • # .NET Framework中使用命名管道进行进程间通信
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #QT(智能家居界面-界面切换)
  • ${factoryList }后面有空格不影响
  • (1)常见O(n^2)排序算法解析
  • (C语言)fread与fwrite详解
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (SpringBoot)第二章:Spring创建和使用
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (三)终结任务
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (一一四)第九章编程练习
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)socket Aio demo
  • (转)可以带来幸福的一本书
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据