zkonline java_U.ARE.U4000B指纹仪,ZKOnline SDK,java服务器端指纹特征码验证--转载
留存,转载自如下网址:
前段时间的一个web项目搞了个指纹登陆,用的是中控的Biokey 开发工具,安装控件驱动神马的, 就不多说了,zkonline的SDK里都有,由于指纹需要在服务器端做比对,但SDK里只提供了DLL库的方式来解决比对问题,所以需要让java调用DLL库。。。在网上找到JNative这个东东来调用DLL里的方法。下面大概说一下实现的过程
1、下载JNative,我下的是JNative-1.3.2 这个包,解压后,包括JNative.jar,JNativeCpp.dll,libJNativeCpp.so三个文件(“libJNativeCpp.so”ms是在linux下用的,没有仔细关注)。
2、将JNative.jar放在工程的lib下,有的文章说要放在jdk的安装目录下,但我试了没有成功,在工程的lib下是成功的。后来为了保险,在JDK安装目录的\jre\lib\ext下也放了一份。
3、将 JNativeCpp.dll 放到tomcat安装目录的\bin 路径下 这个tomcat的版本不同,路径有所不同,我的是tomcat5
4、将 ZKonlineSDK (BS)中的 Match.dll 放到tomcat安装目录的\bin 路径下,(与 JNativeCpp.dll 在同一目录)
5、以上准备工作完成之后,就是编码了。
import org.xvolks.jnative.JNative;
import org.xvolks.jnative.exceptions.NativeException;
import org.xvolks.jnative.pointers.Pointer;
import org.xvolks.jnative.pointers.memory.MemoryBlockFactory;
import org.xvolks.jnative.Type;
public class VerFinger {
//regFingertpl 为数据库中保存的指纹特征码
//verFingertpl 为需要被比对的指纹特征码
public String isVerFinger(String regFingertpl, String verFingertpl) throws
NativeException, IllegalAccessException{
JNative jna = null;
try{
if(jna == null){
jna = new JNative("Match.dll","Process");//调用Mathc中的Process方法
jna.setRetVal(Type.INT);
}
jna.setParameter(0,Type.STRING,regFingertpl);//设置Process方法中的第一个参数
jna.setParameter(1,Type.STRING,verFingertpl);//设置Process方法中的第二个参数
jna.invoke();
String val = jna.getRetVal();//获取Process方法的返回值
return val;
}
finally{
if(jna!=null){
jna.dispose();
}
}
}
}
接下来是isVerFinger方法的调用
String regFingertpl = udao.getUserFinger(userName);
String verFingertpl = request.getParameter("fingertpl");
VerFinger vf = new VerFinger();
String is="";
try {
is = vf.isVerFinger(regFingertpl, verFingertpl);
} catch (NativeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(is.equals("65535")){//当返回值为“65535”时,指纹特征码对比成功
finger = "1";
ableLogin = "1";
}
else if(is.equals("0"))")){//当返回值为“0”时,指纹特征码对比失败
{
finger = "0";
ableLogin = "0";
}
END
ps:初次写此类文章,如果不对之处,还希望多多批评指正,谢谢。
zkonline java_U.ARE.U4000B指纹仪,ZKOnline SDK,java服务器端指纹特征码验证--转载相关推荐
- DigitalPersona 指纹仪的使用
最近在做身份证读卡器和指文采集的工作.身份证读卡器使用的是华视电子的,指纹仪使用的是digitalPersona.之前还接入过HXGC的身份证读卡器和海康的网络摄像头.基本大同小异,这里做个梳理和总结 ...
- JavaScript访问指纹仪采集指纹
一.限制 受浏览器的安全规则限制,JavaScript代码并不能直接访问硬件资源. 采集指纹需要访问指纹仪外设,JavaScript本身已经无能为力. 二.解决方案 需要借助于浏览器插件.浏览器扩展或 ...
- Usb指纹仪无法识别
USB指纹仪无法识别的原因可能有很多. 可能是指纹仪的设备驱动程序没有正确安装,或者是设备本身出了问题. 如果是驱动程序的问题,你可以尝试重新安装驱动程序. 如果是设备本身的问题,你可以尝试检查设备是 ...
- js调用串口通信,读取指纹仪数据
参考资料:http://blog.csdn.net/catxl313/article/details/5244243 全部代码如下,此为读取指纹仪: <!Doctype html> < ...
- linux系统下,浏览器怎么调用本地硬件设备如指纹仪等。
linux系统下,浏览器怎么调用本地硬件设备如指纹仪等. 这个问题是一个同学在项目开发中遇到的问题,做的也是政府部门相关的项目,由于现在政府部门都在慢慢开始放弃windows系统改用Linux系统了, ...
- android 指纹识别支付 secure os,Android指纹识别
常用开发工具类和自定义view,无耻的求个star: https://github.com/AbrahamCaiJin/CommonUtilLibrary 最近开始做项目的时候,需要用到Android ...
- android 指纹识别支付 secure os,Android指纹登录/指纹支付简述
一.简述 业务需求,需要指纹登录,鉴于市面上的资料不是特别齐全,走了不少弯路.现在通了,写点东西给大伙做个参考.末尾会提供demo和参考资料 二.指纹登录/支付工作流程 指纹验证加密流程.png 最新 ...
- matlab指纹图像采集,基于MATLAB实现的指纹图像预处理
西南民族大学学报·自然科学版第 34 卷第 4 期 Journal of Southwest University for Nationalities⋅Natural Science Edition ...
- 指纹图像方向图matlab,matlab指纹方向场方向图程序
function Fangxiangtu = zhiwen_fangxiangtu( Zhiwentuxiang ) %函数功能计算指纹方向图 %函数参数指纹图像Zhiwentuxiang %函数返回 ...
- 什么叫侧面指纹识别_哪种指纹识别方式好?侧边指纹识别可能会成为主流
我以前没有用过背面的指纹.从手机到现在,前置解屏都是一个被认为是理所当然的,甚至升级也应该是屏幕下的指纹.然而,有了小米8,突然觉得指纹解锁实际上不是一个非常重要的问题.首先,如果是前置指纹解屏的话, ...
最新文章
- android不同Activity之间的数据共享
- python PyQt5 adjustSize()(根据内容自适应大小)
- JavaParser生成,分析和修改Java代码
- web版本 开源压测工具_siege--Web性能压测工具
- [转载] 湖北:星空团队——海燕计划
- Spring Security源码分析四:Spring Social实现微信社交登录
- max转obj_工程动画制作 | Max插件Multiscatter进阶教程
- adb -s emulator-5554 install JDKCast-PAP.apk
- 电脑小问题四:知网CAJ格式转下载PDF格式
- 发送网页内容到onenote_将网页中的信息快速添加到OneNote笔记本的方法
- DeepStream 配置文件解析
- Spring框架——applicationContext.xml配置文件头部xmlns
- CAMP模型——估计资本成本的模型
- 基于深度学习的农作物病虫害识别
- C语言:利用函数输出PI值
- 2021腾讯社招java技术岗面试题
- PHP:简单数学勾股定理
- 前端面试题-小米二面
- OrCad原理图封装绘制任意形状
- [附源码]java毕业设计宠物狗领养网站