Advertisement

金融密码机API指南手册

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:DOC


简介:
《金融密码机API指南手册》是一份全面介绍金融领域中加密技术应用的权威资料,详细解释了如何通过API接口安全地处理和传输敏感数据。 ### 金融密码机API手册知识点总结 #### 一、文档概览 《金融密码机API手册》主要介绍了格尔金融密码机的相关接口及其实现方法。该手册由上海格尔信息技术有限公司发布,版本为V1.0,出版时间为2011年9月。手册详细列出了各个API接口的功能说明、函数原型以及输入参数等信息,旨在为开发人员提供一个清晰的指南,以便于在实际项目中使用这些接口。 #### 二、接口定义 ##### 1. PBOC2.0 MAC - **功能说明**:该接口主要用于更新卡片余额及卡片信息时确保数据的完整性和正确性,符合PBOC2.0标准。 - **函数原型**: ```java public byte[] PBOC2MAC(byte[] IV, byte[] DIV1, byte[] DIV2, byte[] EncType, byte[] MDK_MAC, byte DataLen, byte[] Data) throws EMException; ``` - **输入参数** - `IV`:初始化向量(Byte数组) - `DIV1`:子密钥分散用分散因子(Byte数组),通常来源于PAN。 - `DIV2`:过程密钥分散用分散因子(Byte数组),通常来源于ATC。 - `EncType`:加密类型(Byte数组),0x00表示64位分组加密(目前不支持),0x01表示128位分组加密。 - `MDK_MAC`:经LMK保护的MDK_MAC(Byte数组)。 - `DataLen`:数据长度(Byte数组),为16进制。 - `Data`:待处理的数据(Byte数组),长度应为8的整数倍。 ##### 2. PBOC2.0 MAC(索引版) - **功能说明**:与PBOC2.0 MAC类似,但经LMK保护的MDK_MAC是通过密钥类型、密钥索引、密钥ID获取的。 - **函数原型**: ```java public byte[] PBOC2MACIndex(byte[] IV, byte[] DIV1, byte[] DIV2, byte[] EncType, int KeyType, int KeyIndex, int KeyID, byte DataLen, byte[] Data) throws EMException; ``` - **输入参数** - `IV`:初始化向量(Byte数组)。 - `DIV1`:子密钥分散用分散因子(Byte数组),通常来源于PAN。 - `DIV2`:过程密钥分散用分散因子(Byte数组),通常来源于ATC。 - `EncType`:加密类型(Byte数组),0x00表示64位分组加密(目前不支持),0x01表示128位分组加密。 - `KeyType`:密钥类型。 - `KeyIndex`:密钥索引。 - `KeyID`:密钥ID。 - `DataLen`:数据长度(Byte数组),为16进制。 - `Data`:待处理的数据(Byte数组),长度应为8的整数倍。 ##### 3. PBOC MAC 运算 - **功能说明**:执行基于PBOC标准的MAC计算。 - **函数原型**: ```java public byte[] PBOCMAC(byte[] IV, byte[] DIV1, byte[] DIV2, byte[] EncType, byte[] MDK_MAC, byte DataLen, byte[] Data) throws EMException; ``` - **输入参数**:与PBOC2.0 MAC相同。 ##### 4. 密文 KEKTK->LMK 转加密 - **功能说明**:将密文形式的KEK或TK转换成LMK保护的形式。 - **函数原型**: ```java public byte[] TransEncryptKEK(byte[] EncryptedKEK, byte[] LMK) throws EMException; ``` - **输入参数** - `EncryptedKEK`:已加密的KEK(Byte数组)。 - `LMK`:本地主密钥(Byte数组)。 ##### 5. 密文 LMK->KEKTK 转加密 - **功能说明**:将LMK保护的密文转换成KEK或TK的形式。 - **函数原型**: ```java public byte[] TransEncryptToKEK(byte[] LMKProtectedKEK, byte[] KEK) throws EMException; ``` - **输入参数** - `LMKProtectedKEK`:LMK保护的KEK(Byte数组)。 - `KEK`:交换密钥(Byte数组)。 ##### 6. 生成公私钥对 - **功能说明**:生成一对公私钥。 - **函数原型**: ```java public void Generate

全部评论 (0)

还没有任何评论哟~
客服
客服
  • API
    优质
    《金融密码机API指南手册》是一份全面介绍金融领域中加密技术应用的权威资料,详细解释了如何通过API接口安全地处理和传输敏感数据。 ### 金融密码机API手册知识点总结 #### 一、文档概览 《金融密码机API手册》主要介绍了格尔金融密码机的相关接口及其实现方法。该手册由上海格尔信息技术有限公司发布,版本为V1.0,出版时间为2011年9月。手册详细列出了各个API接口的功能说明、函数原型以及输入参数等信息,旨在为开发人员提供一个清晰的指南,以便于在实际项目中使用这些接口。 #### 二、接口定义 ##### 1. PBOC2.0 MAC - **功能说明**:该接口主要用于更新卡片余额及卡片信息时确保数据的完整性和正确性,符合PBOC2.0标准。 - **函数原型**: ```java public byte[] PBOC2MAC(byte[] IV, byte[] DIV1, byte[] DIV2, byte[] EncType, byte[] MDK_MAC, byte DataLen, byte[] Data) throws EMException; ``` - **输入参数** - `IV`:初始化向量(Byte数组) - `DIV1`:子密钥分散用分散因子(Byte数组),通常来源于PAN。 - `DIV2`:过程密钥分散用分散因子(Byte数组),通常来源于ATC。 - `EncType`:加密类型(Byte数组),0x00表示64位分组加密(目前不支持),0x01表示128位分组加密。 - `MDK_MAC`:经LMK保护的MDK_MAC(Byte数组)。 - `DataLen`:数据长度(Byte数组),为16进制。 - `Data`:待处理的数据(Byte数组),长度应为8的整数倍。 ##### 2. PBOC2.0 MAC(索引版) - **功能说明**:与PBOC2.0 MAC类似,但经LMK保护的MDK_MAC是通过密钥类型、密钥索引、密钥ID获取的。 - **函数原型**: ```java public byte[] PBOC2MACIndex(byte[] IV, byte[] DIV1, byte[] DIV2, byte[] EncType, int KeyType, int KeyIndex, int KeyID, byte DataLen, byte[] Data) throws EMException; ``` - **输入参数** - `IV`:初始化向量(Byte数组)。 - `DIV1`:子密钥分散用分散因子(Byte数组),通常来源于PAN。 - `DIV2`:过程密钥分散用分散因子(Byte数组),通常来源于ATC。 - `EncType`:加密类型(Byte数组),0x00表示64位分组加密(目前不支持),0x01表示128位分组加密。 - `KeyType`:密钥类型。 - `KeyIndex`:密钥索引。 - `KeyID`:密钥ID。 - `DataLen`:数据长度(Byte数组),为16进制。 - `Data`:待处理的数据(Byte数组),长度应为8的整数倍。 ##### 3. PBOC MAC 运算 - **功能说明**:执行基于PBOC标准的MAC计算。 - **函数原型**: ```java public byte[] PBOCMAC(byte[] IV, byte[] DIV1, byte[] DIV2, byte[] EncType, byte[] MDK_MAC, byte DataLen, byte[] Data) throws EMException; ``` - **输入参数**:与PBOC2.0 MAC相同。 ##### 4. 密文 KEKTK->LMK 转加密 - **功能说明**:将密文形式的KEK或TK转换成LMK保护的形式。 - **函数原型**: ```java public byte[] TransEncryptKEK(byte[] EncryptedKEK, byte[] LMK) throws EMException; ``` - **输入参数** - `EncryptedKEK`:已加密的KEK(Byte数组)。 - `LMK`:本地主密钥(Byte数组)。 ##### 5. 密文 LMK->KEKTK 转加密 - **功能说明**:将LMK保护的密文转换成KEK或TK的形式。 - **函数原型**: ```java public byte[] TransEncryptToKEK(byte[] LMKProtectedKEK, byte[] KEK) throws EMException; ``` - **输入参数** - `LMKProtectedKEK`:LMK保护的KEK(Byte数组)。 - `KEK`:交换密钥(Byte数组)。 ##### 6. 生成公私钥对 - **功能说明**:生成一对公私钥。 - **函数原型**: ```java public void Generate
  • 优质
    《融合指南手册》是一本全面介绍如何实现不同文化、理念和技术相互结合与创新的实用书籍。它为读者提供了一套系统的方法论和操作步骤,帮助个人或组织在多元化的环境中找到新的成长路径和发展机遇。无论是企业寻求跨文化的团队合作,还是个人探索跨界创意,此书都能为其提供宝贵的见解和支持。 Fusion手册是学习Fusion的必备资料,它提供了中文版的说明书。
  • Java开发的服务平台应用
    优质
    本手册详述了基于Java技术构建的金融密码服务系统操作指南及开发说明,旨在为开发者和运维人员提供全面的技术支持与指导。 ### 金融密码服务平台应用开发手册(JAVA) #### 第一章 密钥管理 密钥管理是金融密码服务中的核心组成部分,它确保了金融交易的安全性和完整性。本章节将详细介绍在金融密码服务平台中各种密钥的产生与管理流程。 ##### 1.1 保护密钥生成 在金融交易过程中,保护密钥主要用于加密工作密钥,以提高系统的安全性。这部分内容主要涵盖了ZMK(Zone Master Key, 区域主密钥)和TMK(Terminal Master Key, 终端主密钥)等关键的生成过程。 ###### 1.1.1 ZMK生成 **函数说明** 此函数用于产生指定机构的保护密钥,并将其存储在密码平台的密钥库中。同时,还会输出该密钥的加密文本和校验值,并通过特定的密钥进行加密保护。 **函数原型** ```java String[] hsm_generate_zmk(String sBrhId1, String sBrhId2) throws Exception ``` **参数说明** | 名称 | 说明 | 类型 | 备注 | |--------|--------------|----------|-----------| | sBrhId1 | 机构代号1 | String | 输入参数 | | sBrhId2 | 机构代号2 | String | 输入参数 | **返回值** 此函数将返回一个字符串数组,包含生成的ZMK密文和校验值。 **示例代码** ```java String[] result = hsm_generate_zmk(001, 002); System.out.println(ZMK密文: + result[0]); System.out.println(校验值: + result[1]); ``` 通过这种方式,可以有效生成并管理保护主密钥(如工作密钥)。 ###### 1.1.2 TMK加密 此部分描述了如何使用BMK或ZMK来加密TMK以确保其安全性。TMK主要用于交易数据的加密处理。 **函数说明** 该函数用于产生和加密TMK,保证在传输与存储过程中的安全,并返回密文及校验值。 **函数原型** ```java String[] hsm_generate_tmk(String sBrhId1, String sBrhId2, String keyType) throws Exception ``` **参数说明** | 名称 | 说明 | 类型 | 备注 | |---------|--------------------|----------|-----------| | sBrhId1 | 机构代号1 | String | 输入参数 | | sBrhId2 | 机构代号2 | String | 输入参数 | | keyType | 加密使用的主密钥类型 | String | 输入参数 | **返回值** 此函数将返回一个字符串数组,包含加密后的TMK的密文和校验值。 **示例代码** ```java String[] result = hsm_generate_tmk(001, 002, ZMK); System.out.println(TMK密文: + result[0]); System.out.println(校验值: + result[1]); ``` 通过这些步骤,可以有效管理和使用TMK,确保交易数据的安全性。 #### 1.2 工作密钥生成 工作密钥主要用于加密和解密实际的金融交易信息(包括PIN码、账户详情等)以保证其安全传输与存储。 ##### 1.2.1 ZPK产生 ZPK(Zone Primary Key, 区域主密钥)用于保护PIN类敏感数据。 **函数说明** 此函数生成并返回ZPK,同时提供该密钥的加密文本和校验值。 **函数原型** ```java String[] hsm_generate_zpk(String sBrhId1, String sBrhId2) throws Exception ``` **参数说明** | 名称 | 说明 | 类型 | |--------|--------------|----------| | sBrhId1 | 机构代号1 | String | | sBrhId2 | 机构代号2 | String | **返回值** 此函数将返回一个字符串数组,包含生成的ZPK密文和校验值。 **示例代码** ```java String[] result = hsm_generate_zpk(001, 002); System.out.println(ZPK密文: + result[0]); System.out.println(校验值: + result[1]); ``` 通过这种方式,可以确保PIN等敏感信息的安全性。 ##### 1.2.2 ZAK产生 ZAK(Zone Auxiliary Key, 区域辅助密钥)用于保护非PIN类交易数据。 **函数说明** 此函数生成并返回ZAK的加密文本和校验值。 **函数
  • NMODBUS中文API
    优质
    《NMODBUS中文API指南手册》是一本详尽介绍Modbus通信协议及其在.NET环境应用的手册。书中涵盖了从基础概念到高级用法的所有内容,并提供大量实例代码,帮助开发者快速掌握NModbus库的使用方法,适用于工业自动化、物联网等领域。 NMODBUS中文API手册提供详细的文档和技术支持,帮助用户更好地理解和使用NMODBUS库。该手册涵盖了一系列主题,包括但不限于协议详解、函数介绍以及示例代码展示等部分,旨在为开发者提供一个全面的参考指南。通过阅读此手册,可以有效地利用NMODBUS进行各种数据采集和设备通信任务。
  • C API中文
    优质
    《C API中文指南手册》是一本全面介绍C语言应用程序编程接口的参考书,提供详细的函数、数据结构和宏定义说明,帮助开发者深入理解并有效使用API。 C语言中文参考手册。
  • Selenium API 中文
    优质
    《Selenium API 中文指南手册》是一本全面介绍 Selenium 自动化测试工具API的手册,提供详细的中文讲解和示例代码。适合Web自动化测试人员学习使用。 **Selenium API 中文参考手册** Selenium 是一个强大的开源自动化测试框架,它允许开发者编写可运行在多种浏览器上的测试脚本。支持的编程语言包括 Python 等,这也是我们今天关注的重点。本参考手册将深入探讨如何利用 Selenium API 在 Python 中进行网页自动化测试。 1. **安装与引入 Selenium** 在 Python 中使用 Selenium 首先需要通过 pip 命令来安装 selenium 库: ``` pip install selenium ``` 安装完成后,在 Python 脚本中引入 WebDriver 接口: ```python from selenium import webdriver ``` 2. **WebDriver** WebDriver 是 Selenium 的核心,它是一个接口,允许与各种浏览器进行通信。Python 中通常使用 Chrome 或 Firefox 的 WebDriver,可以通过如下方式创建实例: ```python # Chrome 示例 from selenium.webdriver.chrome.options import Options options = Options() options.add_argument(--headless) # 无头模式 driver = webdriver.Chrome(options=options) # Firefox 示例 from selenium.webdriver.firefox.options import Options options = Options() driver = webdriver.Firefox() ``` 3. **打开网页** 使用 `get` 方法可以打开指定 URL: ```python driver.get(http://www.example.com) ``` 4. **元素操作** Selenium 提供了丰富的 API 来查找和操作网页元素。例如,使用 `find_element_by_*` 方法定位元素,如: ```python button = driver.find_element_by_id(submit-button) link = driver.find_element_by_link_text(Contact Us) ``` 找到元素后可以进行点击、输入等操作: ```python button.click() input_field = driver.find_element_by_name(username) input_field.send_keys(test_user) ``` 5. **等待机制** 由于网页加载时间的不确定性,Selenium 提供了显式等待(`WebDriverWait`)和隐式等待(`implicitly_wait`)来确保元素的可见性: ```python from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC element = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.ID, dynamic-element)) ) ``` 6. **断言与测试结果验证** 在测试过程中,我们可以使用断言来验证页面状态或元素属性: ```python assert Example Domain in driver.title assert driver.current_url == http://www.example.com ``` 7. **页面源码与截图** 获取页面源代码: ```python page_source = driver.page_source ``` 保存当前页面截图: ```python driver.save_screenshot(screenshot.png) ``` 8. **关闭与退出** 当测试完成后,记得关闭浏览器窗口并退出 WebDriver 实例: ```python driver.quit() ``` 9. **高级功能** Selenium 还支持更多高级功能,如执行 JavaScript 代码、处理弹出窗口和模拟鼠标及键盘事件等。这些都可以通过 WebDriver API 来实现。 通过以上内容,我们可以了解到 Selenium API 在 Python 中的基本用法以及常见的网页自动化测试操作。掌握这些知识后,可以编写复杂的自动化测试脚本,并大大提高测试效率与准确性。阅读Selenium API 中文参考手册将进一步深化对 Selenium 的理解,在网页自动化测试领域游刃有余。
  • SolidWorks API使用
    优质
    《SolidWorks API使用指南手册》是一本全面介绍如何利用SolidWorks应用程序接口进行二次开发的专业书籍,涵盖API基础、编程技巧及实例应用等内容。 1. SolidWorks官方API手册是喜欢进行二次开发的用户必不可少的资源。 2. 文件格式为chm。 英文原版资料。
  • 信超合管理
    优质
    《天融信超融合管理指南手册》是一份全面指导用户管理和优化天融信超融合系统的实用文档。包含系统安装、配置及维护的最佳实践和解决方案。 TopHC管理员操作手册v1.3.pdf 和天融信超融合管理系统(TopHC)一本通手册.chm。此外还包括驱动工具和显示工具。
  • 信配置
    优质
    《天融信配置指南手册》是一份详尽的操作指导文档,旨在帮助用户轻松掌握和运用天融信的各项功能。它覆盖了从基础设置到高级应用的全面教程与技巧分享,是确保系统高效运行的重要参考工具。 天融信配置手册提供了较为全面的设备配置方法。
  • 蝶EAS操作
    优质
    《金蝶EAS操作指南手册》是一份全面介绍金蝶企业应用系统(EAS)使用方法的手册,涵盖系统安装、配置及日常管理等内容,旨在帮助用户快速掌握和熟练运用该软件。 金蝶EAS应用手册提供了基础入门级别的教程,帮助用户了解并掌握EAS的基本操作。