php使用服务器端和客户端加密狗环境部署及使用记录(服务器端windows环境下部署、linux环境宝塔面板部署、客户端部署加密狗)

本文主要是介绍php使用服务器端和客户端加密狗环境部署及使用记录(服务器端windows环境下部署、linux环境宝塔面板部署、客户端部署加密狗),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

php使用服务器端和客户端加密狗环境部署及使用记录

  • ViKey加密狗环境部署
    • 1.windows环境下部署
      • 开发文档
      • 验证代码
      • 提示Fatal error: Class 'COM' not found in
    • 2.linux环境下部署(宝塔面板)
      • 开发文档
      • 验证代码
      • 提示Fatal error: Uncaught Error: Call to undefined function VikeyFind()
    • 3.网页端使用加密狗(客户端)
      • 使用文档
      • 安装ViKey网页控件
      • 登录逻辑
        • 1.javascript验证逻辑
        • 2.HTML容器

在PHP中使用加密狗(通常被称为USB加密设备或硬件安全模块HSM)涉及与加密狗的特定硬件和API接口进行交互。每个加密狗供应商都会提供其设备的驱动程序和API文档,遵循这些文档来在PHP中集成加密狗。

  1. 了解加密狗
    • 查阅加密狗的官方文档,了解其功能、API接口和任何特定的要求。
    • 确定加密狗是否支持PHP,或者是否有可用的库或插件可以与其一起使用。
  2. 安装驱动程序
    • 在服务器上安装加密狗的驱动程序。这通常涉及将驱动程序文件上传到服务器并运行安装程序。
    • 确保驱动程序与你的操作系统和PHP版本兼容。
  3. 配置PHP
    • 根据加密狗的文档,配置PHP以使用加密狗。这可能涉及在php.ini文件中添加特定的扩展或设置。
    • 重启Web服务器以使配置更改生效。
  4. 编写代码
    • 使用加密狗提供的API函数在PHP中编写代码。这些函数允许与加密狗进行通信,执行加密、解密、签名和验证等操作。
    • 通常,使用特定的函数来打开与加密狗的连接,执行所需的操作,然后关闭连接。
  5. 测试
    • 在开发环境中测试代码,确保它可以正确地与加密狗进行通信并执行所需的操作。
    • 检查错误消息和日志,以确保没有遗漏任何重要的配置或步骤。
  6. 部署
    • 将代码部署到生产环境中,并确保加密狗已正确连接到服务器。
    • 在生产环境中进行进一步的测试,以确保代码可以正常工作并满足你的需求。

ViKey加密狗环境部署

1.windows环境下部署

开发文档

网页.PHP

验证代码

$ViKeyInterface = new COM("ViKeyActiveX.ViKeyInterface.1");
$ViKeyInterfaceVersion = $ViKeyInterface->IGetVersion();$ViKeyCount = $ViKeyInterface->IVikeyFind();
if ($ViKeyInterface->IViKeyGetError() == 0 && $ViKeyCount > 0) {$ViKeyIndex = 0;$ViKeyInterface->IVikeyUserLogin($ViKeyIndex, "11111111");if ($ViKeyInterface->IViKeyGetError() == 0) {echo "用户登陆加密狗成功! <br />";} else {echo "用户登陆加密狗失败<br /> ";}
} else {die("系统没有找到加密狗");
}

提示Fatal error: Class ‘COM’ not found in

1、在windows的“服务”里面检查COM 服务是否已经启动。如果未启动,请启动它
2、检查php目录ext文件夹下面php_com_dotnet.dll是否存在
3、在php.ini里面加入以下语句:

[PHP_COM_DOTNET]
extension=php_com_dotnet.dll
com.allow_dcom = true

PHP 5.4.5以前的版本,只需要在php.ini中把com.allow_dcom = true打开就可以了,但是5.4.5版本以后,PHP把com/dotnet 模块集成到了一个单独的扩展中,所以需要在php.ini中加一行扩展extension=php_com_dotnet.dll,是加一行,不是打开,默认配置文件中没有这一行的,然后重启IIS或Apache,再次运行就正常了。

2.linux环境下部署(宝塔面板)

开发文档

Linux.php

验证代码

$ViKeyCount = 0;
$ViKeyErrorCode = 0;
$ViKeyErrorCode = VikeyFind($ViKeyCount);
PrintKeyValueEx("ViKeyErrorCode", $ViKeyErrorCode, "ViKeyCount", $ViKeyCount);

提示Fatal error: Uncaught Error: Call to undefined function VikeyFind()

1.php版本必须>7.2;
2.在php.ini加入extension=vikey.so
3.将vikey.so拷贝到php扩展的ext目录里面
4.将libvikey.so拷贝到系统目录里面/usr/local/lib
5.php重载配置,即可。

3.网页端使用加密狗(客户端)

使用文档

网页.支持谷歌浏览器

安装ViKey网页控件

浏览网页前请先安装“ViKey网页控件”,才可以正常的访问ViKey加密狗。

登录逻辑

在这里插入图片描述

1.javascript验证逻辑
 var ViKeyInterface;var bHasInstallVikey = 0;function IsInstallVikey() {if (bHasInstallVikey == 0) {console.log("尚未安装插件,或插件尚未正常运行");} else {console.log("插件工作正常");}}//执行加载window.onload = function () {var strSocketResult;//创建UK类ViKeyInterface = new ViKeySocketInterface();//检测控件安装setTimeout(function () {ViKeyInterface.CheckInstall();}, 1000);ViKeyInterface.ViKeySocket.onmessage = function (msg) {var FM = window.document.ViKeyForm;var ReceiveJsonData = JSON.parse(msg.data);//console.log(ReceiveJsonData);if (ReceiveJsonData.FunctionType == "VikeyFind") {if (ReceiveJsonData.ErrorCode == 0) {console.log("已找到ViKey加密锁数量:" + ReceiveJsonData.Count);} else {console.log("查找失败 ERRORCODE:" + ReceiveJsonData.ErrorCode);}} else if (ReceiveJsonData.FunctionType == "CheckInstall") {//alert("CheckInstall");if (ReceiveJsonData.ErrorCode == 0) {bHasInstallVikey = 1;IsInstallVikey();setTimeout(function () {IsInstallVikey();}, 500);}} else if (ReceiveJsonData.FunctionType == "VikeyGetHID") {if (ReceiveJsonData.ErrorCode == 0) {console.log("获取硬件序列号成功,硬件 " + ReceiveJsonData.HID);FM.etdNTID.value = ReceiveJsonData.HID;} else {console.log("获取硬件序列号失败 ERRORCODE:" + ReceiveJsonData.ErrorCode);}} else if (ReceiveJsonData.FunctionType == "VikeyUserLogin") {if (ReceiveJsonData.ErrorCode == 0) {console.log("用户登录成功" + FM.UserPin2.value);//location.href = "http://tools.qiaodu.net/dog/";/*登录逻辑,* 1.使用ajax将将FM.UserPin2.value作为参数传至后台* 2.后台加密FM.UserPin2.value* 3.设置cookie,返回给前台* 4.判断是否能正常登录* */} else {console.log("用户权限登陆失败 ERRORCODE:" + ReceiveJsonData.ErrorCode);}}};}//插件是否正常function CheckInstallEx() {//bHasInstallVikey = 0;ViKeyInterface.CheckInstall();setTimeout(function () {IsInstallVikey();}, 500);}//以用户权限登录function ViKeyUserLogon() {var FM = window.document.ViKeyForm;var ViKeyIndex = 0;ViKeyInterface.FindViKey();ViKeyInterface.VikeyGetHID(ViKeyIndex);//获取硬件IDViKeyInterface.VikeyUserLogin(ViKeyIndex, FM.UserPin2.value);}
2.HTML容器
<form action="" name="ViKeyForm" id="ViKeyForm"><table width="960" border="1" align="center" bgcolor="#dfe7df"><tr><td width="200">&nbsp;</td><td>&nbsp;</td><td><input name="btnInstall" type="button" class="ctbottom" id="btnInstall" value="检测控件"onClick="CheckInstallEx();"></td></tr><tr><td><div align="right"><span class="ctbody3">硬件序列号:</span></div></td><td><input name="etdNTID" type="text" class="cttextboxt" id="etdNTID" size="90" maxlength="32"></td><td></td></tr><tr><td><div align="right" class="ctbody3">用户密码:</div></td><td><input name="UserPin2" type="password" class="cttextboxt" id="UserPin2" autocomplete="off"></td><td><input name="btnUserPin2" type="button" class="ctbottom" id="btnUserPin2" value="用户登录"onClick="ViKeyUserLogon();"></td></tr></table>
</form>

@漏刻有时

这篇关于php使用服务器端和客户端加密狗环境部署及使用记录(服务器端windows环境下部署、linux环境宝塔面板部署、客户端部署加密狗)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/968754

相关文章

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain