本手册详述了基于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的加密文本和校验值。
**函数