一、业务背景
在很多项目做密评的过程中,要求乐创者支持第三方的加解密服务,并提供对敏感数据的机密性、完整性等控制。
从v8.0.0版本开始,乐创者通过扩充了一套加解密标准接口,开放对接外部的加解密服务的能力。并实现了系统内部对系统配置(对接的redis、mongodb等服务配置信息)、用户表(dn_user)、用户对角色(dn_map_user_role)、审计日志数据表等相关字段的机密性、完整性控制。
本文档重点介绍如何通过二次开发的方式扩展第三方加解密服务。
二、接口定义
准备工作
从项目依赖lczServer/WEB-INF/lib/hr-toolkit-8.x.x.jar
扩展类实现
扩展类需实现LczCipher接口,接口定义如下:
package com.datanew.cipher;
/**
* 加解密类型枚举定义
*/
public enum CipherType {
/**
* 数据摘要
*/
DATA_HASH,
/**
* 对称加密
*/
SYM_ENCRYPT,
/**
* 非对称加密
*/
ASYM_ENCRYPT,
/**
* 签名验签
*/
SIGN,
}
/**
* 加解密接口定义
*/
public interface LczCipher {
/**
* 加解密函数初始化方法
* @param params
*/
void init(String params);
/**
* 文本加密方法(在此方法中实现第三方的文本内容加密代码)
* @param data
* @param type
* @param param
* @return
*/
String encipher(String data, CipherType type, ExtraParam param) throws Exception;
/**
* 文本解密方法(在此方法中实现第三方的文本内容解密代码)
* @param data
* @param type
* @param param
* @return
*/
String decipher(String data, CipherType type, ExtraParam param) throws Exception;
/**
* 二进制加密方法(在此方法中实现第三方的二进制数据加密代码)
* @param data
* @param type
* @param param
* @return
*/
byte[] encipher(byte[] data, CipherType type, ExtraParam param) throws Exception;
/**
* 二进制解密方法(在此方法中实现第三方的二进制数据解密代码)
* @param data
* @param type
* @param param
* @return
*/
byte[] decipher(byte[] data, CipherType type, ExtraParam param) throws Exception;
/**
* 数据签名(在此方法中实现第三方的数据签名代码)
* @param data
* @param param
* @return
* @throws Exception
*/
String sign(String data, ExtraParam param) throws Exception;
/**
* 数据验签(在此方法中实现第三方的数据验签代码)
* @param data
* @param sign
* @param param
* @return
* @throws Exception
*/
boolean verifySign(String data, String sign, ExtraParam param) throws Exception;
}
public class ExtraParam {
/**
* 当前操作租户
*/
private String tenantId;
/**
* 默认秘钥种子
*/
private String seed;
/**
* 当前操作人ID
*/
private String userId;
/**
* 当前操作人账号
*/
private String userName;
/**
* 默认公钥
*/
private String publicKey;
/**
* 默认私钥
*/
private String privateKey;
/**
* 业务的额外参数
*/
private Map<String, String> otherMap;
}三、应用配置
平台管理员(sa)登录智能门户,在服务配置->加解密服务配置中维护加、解密服务类的管理列表页面,添加对应的加解密服务扩展类:
添加完成后,在服务配置->系统安全->安全登记配置中,选择需要的加、解密服务:
保存成功后,需点击“数据完整性和机密性”按钮,触发对系统数据进行全面的完整性和机密性梳理。
注意:对于业务表中的敏感数据,需用户自行通过数据开发平台进行数据的机密性、完整性处理。
四、使用场景
系统平台核心数据
系统在对核心数据进行加解密时,会调用当前配置的加解密服务对应的加密/解密方法对数据进行预处理。
面向设计人员的加/解密函数
报表/跨设备表单/大屏/数据开发平台等产品中,设计人员可通过平台提供的加密函数(standardencrypt)、解密(standarddecrypt)函数对数据进行加/解密处理。
五、示例代码
class demo {
}作者:柳杨 创建时间:2026-02-03 14:00
最后编辑:柳杨 更新时间:2026-02-03 15:22
最后编辑:柳杨 更新时间:2026-02-03 15:22
扫码关注网盛数新公众号,获取更多帮助资料