
- **请求方式**: `POST`
- **请求头**:- `Access-Id`: 账号的 Access-Id (必填)
- `Content-Type`: `application/json`- **关键入参**:
- `name`: 候选人姓名(必填)- `id_card`: 身份证号(必填)
- `auth_authorize_file_base64`: 授权文件 Base64 编码(PDF 格式,必填)- 鉴权与加密机制:接口使用账户的 16 进制 Access Key 作为密钥,采用 AES-128 的 CBC 模式完成数据加密。每次发起请求时,系统都会动态生成一个 16 字节的 IV,并结合 PKCS7 进行填充。加密完成后,再将 IV 与密文拼接,统一进行 Base64 编码,最终写入请求体的 data 字段。
### 2. 标准化调用代码 (Ja va)
```ja va
package com.api.client;import ja vax.crypto.Cipher;import ja vax.crypto.spec.IvParameterSpec;
import ja vax.crypto.spec.SecretKeySpec;import ja va.io.BufferedReader;
import ja va.io.InputStreamReader;import ja va.io.OutputStream;
import ja va.net.HttpURLConnection;import ja va.net.URL;
import ja va.security.SecureRandom;import ja va.util.Base64;
public class EducationClient {
private static final String BASE_URL = "https://api.haiyudata.com/api/v1/IVYZ4Y27";
private final String accessId;private final byte[] accessKeyBytes;
public EducationClient(String accessId, String accessKeyHex) {
this.accessId = accessId;this.accessKeyBytes = hexStringToByteArray(accessKeyHex);
}private static byte[] hexStringToByteArray(String s) {int len = s.length();
byte[] data = new byte[len / 2];for (int i = 0; i < len; i = 2) {
data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)Character.digit(s.charAt(i 1), 16));
}return data;
}private String encrypt(String rawJson) throws Exception {byte[] iv = new byte[16];
new SecureRandom().nextBytes(iv);IvParameterSpec ivSpec = new IvParameterSpec(iv);
SecretKeySpec skeySpec = new SecretKeySpec(this.accessKeyBytes, "AES");Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE, skeySpec, ivSpec);
byte[] encrypted = cipher.doFinal(rawJson.getBytes("UTF-8"));byte[] combined = new byte[iv.length encrypted.length];System.arraycopy(iv, 0, combined, 0, iv.length);
System.arraycopy(encrypted, 0, combined, iv.length, encrypted.length);return Base64.getEncoder().encodeToString(combined);}
public String executeQuery(String name, String idCard, String pdfBase64) throws Exception {
long timestamp = System.currentTimeMillis();String fullUrl = BASE_URL "?t=" timestamp;
String jsonParams = String.format("{"name":"%s","id_card":"%s","auth_authorize_file_base64":"%s"}", name, idCard, pdfBase64);
String encryptedData = encrypt(jsonParams);String requestBody = "{"data":"" encryptedData ""}";
URL url = new URL(fullUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setRequestMethod("POST");
conn.setRequestProperty("Access-Id", this.accessId);conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
conn.setDoOutput(true);try (OutputStream os = conn.getOutputStream()) {os.write(requestBody.getBytes("UTF-8"));
}try (BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"))) {StringBuilder response = new StringBuilder();
String responseLine;while ((responseLine = br.readLine()) != null) {
response.append(responseLine.trim());}
return response.toString();}
}}
```### 3. 终端快捷验证 (cURL)```bashcurl -X POST "https://api.haiyudata.com/api/v1/IVYZ4Y27?t=1710748432000"
-H "Access-Id: YOUR_ACCESS_ID"-H "Content-Type: application/json"
-d '{"data": "预先生成的加密Base64字符串"}'```
核心学历数据解析与业务映射
| 参数代码 | 字段说明 | 数据类型 | 开发者注意 (业务映射建议) |
| --- | --- | --- | --- || **abilityCompetitiveDegree** | 专业资质评分 | STRING | 取值如 `9`(博士)、`8`(硕士)、`7`(本科)。适合用于学历层级识别与人才筛选。 |
| **abilityCompetitive** | 核心竞争力等级 | STRING | 取值如 `A`(985)、`B`(双一流)、`C`(211)。便于进行院校层次匹配与岗位分流。 || **abilityName** | 专业能力/院校编码 | STRING | 如 `4111010001`(北京大学),建议映射为中文院校名称展示。 |
场景化应用:让核验数据赋能合规闭环
1. **企业 ATS 招聘系统的简历自动校验与分流**:候选人完成授权后,系统可读取 `abilityCompetitiveDegree` 进行学历资格判定与自动分流。
2. **第三方背调机构的合规报告生成引擎**:调用接口获取权威学历核验结果,自动生成标准化、可追溯的履历背调报告。## 生产环境接入的安全与合规边界1. **合法授权基础**:务必上传合法、有效且可核验的授权书 Base64。2. **密文传输**:通信层强制采用 AES-128-CBC 动态加密,保障学历数据传输安全。
3. **权限隔离**:建议在网关层配置访问控制与限流策略,提升接口稳定性与安全性。 ","createTime":1786063288,"ext":{"closeTextLink":0,"comment_ban":0,"description":"","focusRead":0},"fa vNum":0,"html":"","isOriginal":0,"likeNum":0,