有赞云数据加密 NodeJS 版
npm 依赖安装
npm install @youzanyun-fe/youzanyun-data-security --save
示例
const DataSecurity = require('@youzanyun-fe/youzanyun-data-security');
(async () => {
const clientId = '68ffaf8440a4babcde';
const clientSecret = 'b0030740948e368c4ca21ed5d0b123456';
const kdtId = 789456;
const ds = new DataSecurity(clientId, clientSecret);
const cipherText = await ds.encrypt(kdtId, '13012341234');
const cipherText2 = await ds.encrypt(kdtId, '18812341234');
const source = await ds.decrypt(kdtId, cipherText);
const decryptMaskResult = await ds.decryptMask(kdtId, cipherText, DataSecurity.MASK_TYPE.MOBILE);
const encryptResult = await ds.batchEncrypt(kdtId, ['13012341234', '浙江省杭州市']);
const mobiles = batchDecrypt(kdtId, [cipherText, cipherText2]);
const result = await ds.batchDecryptMask(
kdtId,
[cipherText, cipherText2],
SecretClient.MASK_TYPE.BANK_CARD,
);
const searchStr = await ds.generateEncryptSearchDigest(kdtId, cipherText);
const isCipher = DataSecurity.isEncrypt(cipherText);
const isCiphers = DataSecurity.isEncrypt([cipherText, cipherText2]);
})();
API
constructor()
构造器函数
参数说明
字段 | 类型 | 说明 |
---|
clientId | string | clientId |
clientSecret | string | clientSecret |
示例
const ds = new DataSecurity(clientId, clientSecret);
encrypt(kdtId, source)
加密方法,返回加密后的字符串
参数说明
字段 | 类型 | 说明 |
---|
kdtId | number | 店铺 id |
source | string | 明文 |
示例
const cipherText = await ds.encrypt(kdtId, '13012341234');
const cipherText2 = await ds.encrypt(kdtId, '18812341234');
batchEncrypt(kdtId, sources)
批量加密方法,返回一个 Object,key 为明文,value 为密文。
参数说明
字段 | 类型 | 说明 |
---|
kdtId | number | 店铺 id |
sources | string[] | 明文数组 |
示例
const encryptResult = await ds.batchEncrypt(kdtId, ['13012341234', '浙江省杭州市']);
decrypt(kdtId, cipherText)
解密方法,返回解密后的明文,传入明文时返回明文。tip: 解密失败会抛异常
参数说明
字段 | 类型 | 说明 |
---|
kdtId | number | 店铺 id |
cipherText | string | 密文 |
示例
const cipherText = await ds.encrypt(kdtId, '13012341234');
const source = await ds.decrypt(kdtId, cipherText);
batchDecrypt(kdtId, cipherTexts)
批量解密,返回一个 Object,key 为密文,value 为明文。
参数说明
字段 | 类型 | 说明 |
---|
kdtId | number | 店铺 id |
cipherTexts | string[] | 密文数组 |
示例
const cipherText = await ds.encrypt(kdtId, '13012341234');
const cipherText2 = await ds.encrypt(kdtId, '18812341234');
const mobiles = batchDecrypt(kdtId, [cipherText, cipherText2]);
decryptMask(kdtId, cipherText, type)
解密并脱敏,返回解密并脱敏后的明文。
参数说明
字段 | 类型 | 说明 |
---|
kdtId | number | 店铺 id |
cipherText | string | 密文 |
type | number | 脱敏类型 (参考文档最后的脱敏类型枚举) |
示例
const cipherText = await ds.encrypt(kdtId, '13012341234');
const decryptMaskResult = await ds.decryptMask(kdtId, cipherText, DataSecurity.MASK_TYPE.MOBILE);
batchDecryptMask(kdtId, cipherTexts, type)
批量解密并脱敏,返回一个 Object,key 为密文,value 为解密并脱敏后的明文。
参数说明
字段 | 类型 | 说明 |
---|
kdtId | number | 店铺 id |
cipherTexts | string[] | 密文数组 |
type | number | 脱敏类型 (参考文档最后的脱敏类型枚举) |
示例
const cipherText = await ds.encrypt(kdtId, '13012341234');
const cipherText2 = await ds.encrypt(kdtId, '18812341234');
const result = await ds.batchDecryptMask(
kdtId,
[cipherText, cipherText2],
SecretClient.MASK_TYPE.BANK_CARD,
);
generateEncryptSearchDigest(kdtId, source)
生成模糊加密字符串, 支持部分搜索,返回一个结果字符串。
参数说明
字段 | 类型 | 说明 |
---|
kdtId | number | 店铺 id |
source | string | 明文 |
示例
const cipherText = await ds.encrypt(kdtId, '13012341234');
const searchStr = await ds.generateEncryptSearchDigest(kdtId, cipherText);
static MASK_TYPE
静态属性,脱敏类型枚举定义
类型 | 类型说明 | 值 |
---|
ADDRESS | 地址 | 0 |
BANK_CARD | 银行卡号 | 1 |
NAME | 用户名 | 2 |
EMAIL | 邮箱地址 | 3 |
COMPANY_NAME | 企业名称 | 4 |
ID_CARD | 身份证号 | 5 |
MOBILE | 手机号码 | 6 |
示例
const cipherText = await ds.encrypt(kdtId, '13012341234');
const decryptMaskResult = await ds.decryptMask(kdtId, cipherText, DataSecurity.MASK_TYPE.MOBILE);
static isEncrypt(cipherText)
判断输入是不是密文,返回 true/false。
示例
const cipherText = await ds.encrypt(kdtId, '13012341234');
const isCipher = DataSecurity.isEncrypt(cipherText);
static batchIsEncrypt(cipherTexts)
批量是否密文判断,返回 true/false。
示例
const cipherText = await ds.encrypt(kdtId, '13012341234');
const cipherText2 = await ds.encrypt(kdtId, '18812341234');
const isCipher = DataSecurity.isEncrypt([cipherText, cipherText2]);