bsp

IRIS加密接口说明

文档简介

本说明面向在 IRIS ** 等环境中调用项目加密与编码能力的开发人员。文档汇总 **Util.EncryptionUtils(摘要、对称加密、国密、RSA、Java 网关等)与 Util.EncodingUtils(Base64、Hex、URL、Unicode 等)的类方法:给出用途、参数、返回值、ObjectScript 签名及可调式示例,便于与第三方系统对账或联调。

阅读建议:先浏览 「文档说明」 了解结构;调用前务必阅读 「参数约定与填写说明」,其中说明了 outputTypekeyTypecipherType、SM4、RSA 路径、Java 网关等常见填法,可减少因编码或密钥表示方式不一致导致的错误。正文按「IRIS 原生加密 → Java 加密服务 → 编码方法」分块,算法顺序与门面类中的方法分组大体一致。

文档内容力求与仓库内 Util.EncryptionUtilsUtil.EncodingUtilsUtil.Encryption.* 的当前实现一致;若代码变更后示例或参数说明未同步,以源码与实际运行结果为准。

文档说明

本文档按两类组织:

每个方法均采用统一模板:

实现与门面类对应关系:Util.EncryptionUtils 为对外门面,Util.EncodingUtils 为编码门面;逻辑在 Util.Impl.EncryptionUtilsUtil.Impl.EncodingUtils(及 Util.Encryption.* 等)。下文示例中的 ##class(Util.EncryptionUtils)##class(Util.EncodingUtils) 均指上述门面。


参数约定与填写说明

1. outputType / outputFormat(摘要、HMAC、对称加密的输出或 Java 接口的格式)

取值 含义
hex 小写十六进制字符串
base64 标准 Base64
raw 原始二进制串(终端里可能显示为乱码,适合程序间传递)

2. keyType / ivType(密钥、IV 如何解码)

取值 含义
text 把传入的 %StringUTF-8 编成字节,再作为密钥或 IV
hex 把内容当作十六进制串解码为字节
base64 Base64 解码后的二进制作为密钥或 IV

3. cipherType 与 AES 解密里的 outputType

对称解密(如 AES ECB/CBC 各 *Decrypt)需要知道密文是 Base64、Hex 还是原始字节:

加密侧 outputType 表示输出密文的编码;解密侧请勿混淆「密文长什么样」与「密钥类型」。

4. AES(IRIS 原生)

5. SM4(SM4Encrypt / SM4Decrypt

参数 填写说明
str 明文(加密)或密文(解密)
key 密钥材料;与 keyType 一起决定 16 字节密钥:不足末尾补 0x00,超过取前 16 字节
retType(加密) 密文输出形式:BASE64HEX(大小写不敏感)
textType(解密) 密文输入形式:BASE64HEX
keyType TEXT:UTF-8 字节;HEX:十六进制;BASE64:标准 Base64;BASE64URLSAFE:URL 安全 Base64 先转标准再解码
padding PKCS7(与常见 PKCS5 称呼互通)或 ZERO
mode ECBCBC;拼写 EBC 也会被当作 ECB
iv CBC 需要;IV 与密钥使用同一套 keyType 规则解析为 16 字节

6. 原生 RSA(RSAEncrypt / RSADecrypt

7. Java 网关加密(方法名以 Java 开头)

8. 编码类 Util.EncodingUtils

参数 说明
str / content 待编码或解码的字符串
hexHexDecode 仅含十六进制字符的串,解码为字节后按 UTF-8 还原
ConvertUrl(str, type) type 默认 equal:把 Base64 的 +/= 换成 URL 安全形式;其它取值见 Util.Impl.EncodingUtils.ConvertUrl

Base64 / Base32 等:编码前明文会按 UTF-8 转字节;UnicodeEncode / UnicodeDecode 为类 URL/JS 风格的 Unicode 转义。


一、加密方法

IRIS 原生加密

1. MD5

校验网站:https://www.jyshare.com/crypto/md5/

MD5Encrypt

DHC-APP>w ##class(Util.EncryptionUtils).MD5Encrypt("1a姚鑫!.","hex")
a1f4cc2b0615babeba2a72f5cc4819c1
DHC-APP>w ##class(Util.EncryptionUtils).MD5Encrypt("1a姚鑫!.","base64")
ofTMKwYVur66KnL1zEgZwQ==
DHC-APP>w ##class(Util.EncryptionUtils).MD5Encrypt("1a姚鑫!.","raw")   
¡ôÌ+º¾º*rõÌHÁ

HMACMD5Encrypt

DHC-APP>w ##class(Util.EncryptionUtils).HMACMD5Encrypt("1ab姚鑫@#!", "1234567890", "text", "hex")
9b03630a896fda4b376391d7572f2709
DHC-APP>w ##class(Util.EncryptionUtils).HMACMD5Encrypt("1ab姚鑫@#!", "1234567890", "text", "base64")
mwNjColv2ks3Y5HXVy8nCQ==

2. SHA

校验网站:https://www.jyshare.com/crypto/sha1/

SHA1Encrypt

DHC-APP>w ##class(Util.EncryptionUtils).SHA1Encrypt("1ab姚鑫@#!")
33c10475eb88ea8edb81d55cc683243caec06132

SHA224Encrypt

DHC-APP>w ##class(Util.EncryptionUtils).SHA224Encrypt("1ab姚鑫@#!")
024fc87a6a6b5e10d5dd556da6996bd8b9c7e881d9c02ef6b3bd6a84

SHA256Encrypt

DHC-APP>w ##class(Util.EncryptionUtils).SHA256Encrypt("1ab姚鑫@#!")
9e93e1e74f3c296f8c8a7911827611d67fa81125451b75a52393dd5b60af9a96

SHA384Encrypt

DHC-APP>w ##class(Util.EncryptionUtils).SHA384Encrypt("1ab姚鑫@#!")
3b1e2e0e7bf956a303f43668b536bbc4bb15872228a58b06ce74b54c74cb6bf7ea6e75ce01f67b22d37e0f24e5600f6e

SHA512Encrypt

DHC-APP>w ##class(Util.EncryptionUtils).SHA512Encrypt("1ab姚鑫@#!")
bf718aaf7018a5e2f914825ae805cd37775e8d524407369bd28b034c61e3d33fc8e1dc7784bb73eaf2db2e1042bccb340c63415d52b2df80f3986904b37b6d2a

HMACSHA1Encrypt

DHC-APP>w ##class(Util.EncryptionUtils).HMACSHA1Encrypt("1ab姚鑫@#!",1234567890, "text", "hex")
ac34ef896f5987c91b35ff6b047d65af04defc02

HMACSHA224Encrypt

DHC-APP>w ##class(Util.EncryptionUtils).HMACSHA224Encrypt("1ab姚鑫@#!",1234567890, "text", "hex")
2b22b6528c540792db696b8c4a3d30fc35b83e23b832be8527cb5128

HMACSHA256Encrypt

DHC-APP>w ##class(Util.EncryptionUtils).HMACSHA256Encrypt("1ab姚鑫@#!",1234567890, "text", "hex")
67ec05376fc6cc719216ebe6a3ec6b7f73001b3b8a6f451f454066e58b9a04e7

HMACSHA384Encrypt

DHC-APP>w ##class(Util.EncryptionUtils).HMACSHA384Encrypt("1ab姚鑫@#!",1234567890, "text", "hex")
96ff10ed4b67429320acfb9fcee811d4754055c2dfe82edddab5da99f9cc7843c46ad2a83e90a80957ad2c465addf283

HMACSHA512Encrypt

3. AES

校验网站:http://tool.chacuo.net/cryptaes

AESECBZeroPaddingEncrypt

DHC-APP>w ##class(Util.EncryptionUtils).AESECBZeroPaddingEncrypt("1ab姚鑫@#!","J#y9sJesv*512345","text", "base64")
e7mwJvE9+OgKf/IHdTthsA==
DHC-APP>w ##class(Util.EncryptionUtils).AESECBZeroPaddingEncrypt("1ab姚鑫@#!","J#y9sJesv*512345","text", "hex")   
7bb9b026f13df8e80a7ff207753b61b0

AESECBZeroPaddingDecrypt

DHC-APP>w ##class(Util.EncryptionUtils).AESECBZeroPaddingDecrypt("e7mwJvE9+OgKf/IHdTthsA==","J#y9sJesv*512345","text", "base64", "base64")
1ab姚鑫@#!
DHC-APP>w ##class(Util.EncryptionUtils).AESECBZeroPaddingDecrypt("7bb9b026f13df8e80a7ff207753b61b0","J#y9sJesv*512345","text","hex", "hex")
1ab姚鑫@#!

AESCBCPKCS7PaddingEncrypt

DHC-APP>w ##class(Util.EncryptionUtils).AESCBCPKCS7PaddingEncrypt("1ab姚鑫@#!", "J#y9sJesv*512345", "J#y9sJesv*512345","text", "text", "base64")
6Y8NmJMsagLOsgErqcYmkw==
DHC-APP>w ##class(Util.EncryptionUtils).AESCBCPKCS7PaddingEncrypt("1ab姚鑫@#!", "J#y9sJesv*512345", "J#y9sJesv*512345","text", "text", "hex")   
e98f0d98932c6a02ceb2012ba9c62693

AESCBCPKCS7PaddingDecrypt

DHC-APP>w ##class(Util.EncryptionUtils).AESCBCPKCS7PaddingDecrypt("e98f0d98932c6a02ceb2012ba9c62693", "J#y9sJesv*512345", "J#y9sJesv*512345","text", "text", "hex", "hex")
1ab姚鑫@#!
DHC-APP>w ##class(Util.EncryptionUtils).AESCBCPKCS7PaddingDecrypt("6Y8NmJMsagLOsgErqcYmkw==", "J#y9sJesv*512345", "J#y9sJesv*512345","text", "text", "base64", "base64")
1ab姚鑫@#!

AESCBCPKCS5PaddingEncrypt

DHC-APP>w ##class(Util.EncryptionUtils).AESCBCPKCS5PaddingEncrypt("1ab姚鑫@#!", "J#y9sJesv*512345", "J#y9sJesv*512345","text", "text", "base64")
6Y8NmJMsagLOsgErqcYmkw==
DHC-APP>w ##class(Util.EncryptionUtils).AESCBCPKCS5PaddingEncrypt("1ab姚鑫@#!", "J#y9sJesv*512345", "J#y9sJesv*512345","text", "text", "hex")
e98f0d98932c6a02ceb2012ba9c62693

AESCBCPKCS5PaddingDecrypt

DHC-APP>w ##class(Util.EncryptionUtils).AESCBCPKCS5PaddingDecrypt("6Y8NmJMsagLOsgErqcYmkw==", "J#y9sJesv*512345", "J#y9sJesv*512345","text", "text", "base64", "base64")
1ab姚鑫@#!
DHC-APP>w ##class(Util.EncryptionUtils).AESCBCPKCS5PaddingDecrypt("e98f0d98932c6a02ceb2012ba9c62693", "J#y9sJesv*512345", "J#y9sJesv*512345","text", "text", "hex", "hex")
1ab姚鑫@#!

AESECBPKCS5PaddingEncrypt

DHC-APP>w ##class(Util.EncryptionUtils).AESECBPKCS5PaddingEncrypt("1ab姚鑫@#!","J#y9sJesv*512345","text", "base64")
ROvjltaCFBS5thrSSqkd+g==
DHC-APP>w ##class(Util.EncryptionUtils).AESECBPKCS5PaddingEncrypt("1ab姚鑫@#!","J#y9sJesv*512345","text", "hex")
44ebe396d6821414b9b61ad24aa91dfa

AESECBPKCS5PaddingDecrypt

ClassMethod AESECBPKCS5PaddingDecrypt(str As %String, key As %String = "", keyType As %String = "text", outputType As %String = "base64", cipherType As %String = "") As %String
DHC-APP>w ##class(Util.EncryptionUtils).AESECBPKCS5PaddingDecrypt("ROvjltaCFBS5thrSSqkd+g==","J#y9sJesv*512345","text", "base64", "base64")
1ab姚鑫@#!
DHC-APP>w ##class(Util.EncryptionUtils).AESECBPKCS5PaddingDecrypt("44ebe396d6821414b9b61ad24aa91dfa","J#y9sJesv*512345","text", "hex", "hex")
1ab姚鑫@#!

AESECBPKCS7PaddingEncrypt

ClassMethod AESECBPKCS7PaddingEncrypt(str As %String, key As %String = "", keyType As %String = "text", outputType As %String = "base64") As %String
DHC-APP>w ##class(Util.EncryptionUtils).AESECBPKCS7PaddingEncrypt("1ab姚鑫@#!","J#y9sJesv*512345","text", "base64")
ROvjltaCFBS5thrSSqkd+g==
DHC-APP>w ##class(Util.EncryptionUtils).AESECBPKCS7PaddingEncrypt("1ab姚鑫@#!","J#y9sJesv*512345","text", "hex")
44ebe396d6821414b9b61ad24aa91dfa

AESECBPKCS7PaddingDecrypt

ClassMethod AESECBPKCS7PaddingDecrypt(str As %String, key As %String = "", keyType As %String = "text", outputType As %String = "base64", cipherType As %String = "") As %String
DHC-APP>w ##class(Util.EncryptionUtils).AESECBPKCS7PaddingDecrypt("ROvjltaCFBS5thrSSqkd+g==","J#y9sJesv*512345","text", "base64", "base64")
1ab姚鑫@#!
DHC-APP>w ##class(Util.EncryptionUtils).AESECBPKCS7PaddingDecrypt("44ebe396d6821414b9b61ad24aa91dfa","J#y9sJesv*512345","text", "hex", "hex")
1ab姚鑫@#!

AESECBPKCS5PaddingEncryptStream

DHC-APP>w ##class(Util.EncryptionUtils).AESECBPKCS5PaddingEncryptStream("1ab姚鑫@#!","J#y9sJesv*512345").Read()
ROvjltaCFBS5thrSSqkd+g==

AESECBPKCS5PaddingDecryptStream

DHC-APP>w ##class(Util.EncryptionUtils).AESECBPKCS5PaddingDecryptStream(##class(Util.EncryptionUtils).AESECBPKCS5PaddingEncryptStream("1ab姚鑫@#!","J#y9sJesv*512345"),"J#y9sJesv*512345")
1ab姚鑫@#!

4. SM3

校验网站:https://tool.hiofd.com/sm3-online/

SM3Encrypt

DHC-APP>w ##class(Util.EncryptionUtils).SM3Encrypt("1ab姚鑫@#!","hex")
a13f3300653d28a97d41b66540a4546ffe0e708fcc9b38de3be1d938b9fa85ff
DHC-APP>w ##class(Util.EncryptionUtils).SM3Encrypt("1ab姚鑫@#!","base64")
oT8zAGU9KKl9QbZlQKRUb/4OcI/MmzjeO+HZOLn6hf8=

HMACSM3Encrypt

校验网站:https://www.easydebug.net/encryption-sm

DHC-APP>w ##class(Util.EncryptionUtils).HMACSM3Encrypt("1ab姚鑫@#!","1234567890","hex", "hex")
8f7440535c3c8954221f4bed3d5fbfb8cfed04be223d1b414a9eaaa0ec03587e
DHC-APP>w ##class(Util.EncryptionUtils).HMACSM3Encrypt("1ab姚鑫@#!",1234567890,"hex", "base64")
j3RAU1w8iVQiH0vtPV+/uM/tBL4iPRtBSp6qoOwDWH4=

5. SM4

校验网站:https://tool.hiofd.com/sm4-encrypt-online/

SM4Encrypt

SM4 - ECB - PKCS7 密钥类型为HEX输出结果为HEX

DHC-APP>w ##class(Util.EncryptionUtils).SM4Encrypt("1ab姚鑫@#!","975C7238C3824FB0975C7238C3824FB0","Hex","HEX","PKCS7","ECB")
2D123303571BA4C5A15A1692EDB13783

SM4 - ECB - PKCS7 密钥类型为HEX输出结果为BASE64

DHC-APP>w ##class(Util.EncryptionUtils).SM4Encrypt("1ab姚鑫@#!","975C7238C3824FB0975C7238C3824FB0","BASE64","HEX","PKCS7","ECB")
LRIzA1cbpMWhWhaS7bE3gw==

SM4 - ECB - PKCS7 密钥类型为TEXT输出结果为HEX

DHC-APP>w ##class(Util.EncryptionUtils).SM4Encrypt("1ab姚鑫@#!","975C7238C3824FB0","HEX","TEXT","PKCS7","ECB")
7AD4159325EB143C2E7338CD42514EA3

SM4 - ECB - PKCS7 密钥类型为TEXT输出结果为BASE64

DHC-APP>w ##class(Util.EncryptionUtils).SM4Encrypt("1ab姚鑫@#!","975C7238C3824FB0","base64","TEXT","PKCS7","ECB")
etQVkyXrFDwuczjNQlFOow==

SM4 - ECB - PKCS7 密钥类型为BASE64输出结果为BASE64

DHC-APP>w ##class(Util.EncryptionUtils).SM4Encrypt("1ab姚鑫@#!","TvaBgrhE46sft3nZlfe7xw==","base64","base64","PKCS7","ECB")
d9cw5sCuUtZLZSD60y9bjw==

SM4 - ECB - ZERO 密钥类型为BASE64输出结果为BASE64

DHC-APP>w ##class(Util.EncryptionUtils).SM4Encrypt("1ab姚鑫@#!","Rl+LAwAmOfgJjzcfo8hXfw==","BASE64","BASE64","ZERO","ECB")
zu12rx3u213lw3GNaGvJBw==

SM4 - CBC - PKCS7 密钥类型为TEXT IV 类型为 TEXT 输出结果为HEX

DHC-APP>w ##class(Util.EncryptionUtils).SM4Encrypt("1ab姚鑫@#!","975C7238C3824FB0","HEX","TEXT","PKCS7","CBC","975C7238C3824FB0")
ACBC8301E0964705A55EA3E077B8EC8A

SM4Decrypt

- 调试示例:

SM4 - ECB - PKCS7 密钥类型为HEX密文为HEX

DHC-APP>w ##class(Util.EncryptionUtils).SM4Decrypt(“2D123303571BA4C5A15A1692EDB13783”, “975C7238C3824FB0975C7238C3824FB0”,”HEX”,”HEX”,”PKCS7”,”ECB”) 1ab姚鑫@#!


SM4 - ECB - PKCS7 密钥类型为TEXT密文为HEX

DHC-APP>w ##class(Util.EncryptionUtils).SM4Decrypt(“7AD4159325EB143C2E7338CD42514EA3”,”975C7238C3824FB0”,”HEX”,”TEXT”,”PKCS7”,”ECB”) 1ab姚鑫@#!


SM4 - ECB - PKCS7 密钥类型为BASE64密文为BASE64

DHC-APP>w ##class(Util.EncryptionUtils).SM4Decrypt(“d9cw5sCuUtZLZSD60y9bjw==”,”TvaBgrhE46sft3nZlfe7xw==”,”base64”,”base64”,”PKCS7”,”ECB”) 1ab姚鑫@#!


SM4 - ECB - ZERO 密钥类型为BASE64密文为BASE64

DHC-APP>w ##class(Util.EncryptionUtils).SM4Decrypt(“zu12rx3u213lw3GNaGvJBw==”,”Rl+LAwAmOfgJjzcfo8hXfw==”,”BASE64”,”BASE64”,”ZERO”,”ECB”) 1ab姚鑫@#!


SM4 - CBC - PKCS7 密钥类型为TEXT IV 类型为 TEXT 密文为HEX

DHC-APP>w ##class(Util.EncryptionUtils).SM4Decrypt(“ACBC8301E0964705A55EA3E077B8EC8A”,”975C7238C3824FB0”,”HEX”,”TEXT”,”PKCS7”,”CBC”,”975C7238C3824FB0”) 1ab姚鑫@#!


## 6. RSA

### RSAEncrypt
- 描述:RSA 公钥证书加密。
- 参数:`plainText`,`certPath`
- 返回值:密文
```objectscript
ClassMethod RSAEncrypt(plainText As %String, certPath As %String) As %String

RSADecrypt

7. DES

DESEncrypt

ClassMethod DESEncrypt(plain As %String, key As %String, keyType As %String = "text", mode As %String = "ECB", padding As %String = "PKCS7", outputFormat As %String = "base64", iv As %String = "", ivType As %String = "text") As %String
USER>w ##class(Util.EncryptionUtils).DESEncrypt("1ab姚鑫@#!","1234567890","text   ","ECB","PKCS7","hex")
2afa3ebe6f6949c351965ac257c2cc90

DESDecrypt

ClassMethod DESDecrypt(cipher As %String, key As %String, keyType As %String = "text", mode As %String = "ECB", padding As %String = "PKCS7", cipherType As %String = "base64", iv As %String = "", ivType As %String = "text") As %String
USER>w ##class(Util.EncryptionUtils).DESDecrypt("2afa3ebe6f6949c351965ac257c2cc90","1234567890","text","ECB","PKCS7","hex")
1ab姚鑫@#!

8. 3DES

3DESEncrypt

ClassMethod DesedeEncrypt(plain As %String, key As %String, keyType As %String = "text", mode As %String = "ECB", padding As %String = "PKCS7", outputFormat As %String = "base64", iv As %String = "", ivType As %String = "text", keyMode As %String = "strict") As %String
USER>w ##class(Util.EncryptionUtils).DesedeEncrypt("1ab姚鑫@#!","12345678123456   78","text","ECB","PKCS7","hex")
2afa3ebe6f6949c351965ac257c2cc90

3DESDecrypt

ClassMethod DesedeDecrypt(cipher As %String, key As %String, keyType As %String = "text", mode As %String = "ECB", padding As %String = "PKCS7", cipherType As %String = "base64", iv As %String = "", ivType As %String = "text", keyMode As %String = "strict") As %String
USER>w ##class(Util.EncryptionUtils).DesedeDecrypt("2afa3ebe6f6949c351965ac257c2cc90","1234567812345678","text","ECB","PKCS7","hex")
1ab姚鑫@#!

9. 奇偶加密

OddEvenEncrypt

DHC-APP>w ##class(Util.EncryptionUtils).OddEvenEncrypt("ab2")
900789500

OddEvenDecrypt

DHC-APP>w ##class(Util.EncryptionUtils).OddEvenDecrypt("900789501091")
ab2w

JAVA 加密服务 - 标准加密

1. SM2

JavaSm2Sign

校验网站:https://tool.hiofd.com/sm2-sign-verify/

w ##class(Util.EncryptionUtils).JavaSm2Sign("1ab姚鑫@#!","a99d6978656   355b570a19cc707b2ea68ed033c3fa436df9c0a15e84a06069c7b")
304402207627bfb7e7bdef7de087c0a64fd8e179c10df18548294d72fdf089c8e85e42740220724ea448f5242a79f4c127fc6a153372f824f275822f0d62564e3cf8c0006775

JavaSm2Verify

w ##class(Util.EncryptionUtils).JavaSm2Verify("1ab姚鑫@#!","04b674b6e   dfd08f754410b21cc3c8b522f318a1f1b27403bc63a290b7e1790d03d967d06c46e69357793967ff42a34d77ed5d7bb40d31b7f5ab0b0840017cff114","3044022016fb0f645bbc0ba9fbeacb3dfb7ba20a7c629e64183149d8a43b6ece471faba802202dcfd47e72fc45011eb280f328312f78aaad48d499e648fc8ba7b48844f0a236")
1

JavaSm2Encrypt

校验网站:https://tool.hiofd.com/sm2-encrypt-online/

USER>w ##class(Util.EncryptionUtils).JavaSm2Encrypt("1ab姚鑫@#!","04b674b6   edfd08f754410b21cc3c8b522f318a1f1b27403bc63a290b7e1790d03d967d06c46e69357793967ff42a34d77ed5d7bb40d31b7f5ab0b0840017cff114","C1C3C2",1,1)
04f988b4bd8bbfc9691b175a246fbbb87d36ff5d23519a9944da822e508d5891f38d0529686e664fe263d46ff28ce7fcf771f3b5432d4ca50315a428c48bc37cf37bcbc8bf4c6a6e83911c8b9f09d8b7a48e2540004df102cfb7b9ddfea788f96c0cd5902e3c3761a8429426c87e0e

JavaSm2Encrypt4PKCS8

USER>w ##class(Util.Impl.EncryptionUtils).JavaSm2Encrypt4PKCS8("1ab姚鑫@#!","LS   0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQk16Q0I3QVlIS29aSXpqMENBVENCNEFJQkFUQXNCZ2NxaGtqT1BRRUJBaUVBLy8vLy92Ly8vLy8vLy8vLwovLy8vLy8vLy8vOEFBQUFBLy8vLy8vLy8vLzh3UkFRZy8vLy8vdi8vLy8vLy8vLy8vLy8vLy8vLy8vOEFBQUFBCi8vLy8vLy8vLy93RUlDanArcDZkbjE0MFRWcWVTODlsQ2Fmemw0bjFGYXVQa3QyOHZVRk5sQTZUQkVFRU1zU3UKTEI4WmdSbGZtUVJHYWpuSmxJL2pDNy95Wmd2aGNWcEZpVE5NZE1lOE56YWk5UFozbkZtOXp1TnJhU0ZUMEttSApmTVlxUjBBQzN6TGxJVG53b0FJaEFQLy8vLzcvLy8vLy8vLy8vLy8vLy85eUE5OXJJY1lGSzFPNzlBazUxVUVqCkFnRUJBMElBQkt2NnhzTkN2QUNteGd1SGREOWx1WVc1Q25RbFVmazcyM1JxYjRMNUpua21rTzJNQTNTSmNwNm8KMS9FRzM4ZWk5S2duRXFiV2lTcktHODJYbExTTi9KVT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg","C1C2C3",0)
BPXhrYOz0DjkEc1T9eikPiWT1hHSjYZl16kuQtKddGFOVNicDNVbvdzqa9sYePXg6UKHV9Y8e220oz/aK0indAggQYZ0QiyovLdQIUN4SfxjUIgc78zTfIG76jL2bCO6J3FdXsOhS/lL7SG1BuaG

JavaSm2Decrypt

w ##class(Util.Impl.EncryptionUtils).JavaSm2Decrypt("042d2e5e82795458f4599a377bd08b758de09431d1352c2ff461d5c6cac037c75b4afa2b875ed028ff762a2b901065d617eef788149cd6324cf5089c674d7c4595dededad2603cdfac80bf17ff4d03e8ce50f0ee5334282976e8481c2476a6369252657f3cfde02b3b43b34e8ccff9","a99d6978656355b570a19cc707b2ea68ed033c3fa436df9c0a15e84a06069c7b")
1ab姚鑫@#!

2. SM3

JavaSm3Encrypt

校验网站:https://tool.hiofd.com/sm3-online/

USER>w ##class(Util.Impl.EncryptionUtils).JavaSm3Encrypt("Hello World")
77015816143ee627f4fa410b6dad2bdb9fcbdf1e061a452a686b8711a484c5d7

JavaSm3Hmac

校验网站:https://www.easydebug.net/encryption-sm

USER>w ##class(Util.Impl.EncryptionUtils).JavaSm3Hmac("Hello World", "mySecretKey123456")
MI/1ELLsN8gJbGFnZLjIGM6ergxswdKCDyhT7ZWyY/g=

JavaSm3VerifyHmac

USER>w ##class(Util.Impl.EncryptionUtils).JavaSm3VerifyHmac("Hello World", "mySecretKey123456","MI/1ELLsN8gJbGFnZLjIGM6ergxswdKCDyhT7ZWyY/g=")
true

3. SM4

校验网站:https://tool.hiofd.com/sm4-encrypt-online/

JavaSm4CbcZeroEncrypt

ClassMethod JavaSm4CbcZeroEncrypt(plainText As %String, keyStr As %String, ivStr As %String, keyType As %String = "text", outputFormat As %String = "hex") As %String
USER>w ##class(Util.Impl.EncryptionUtils).JavaSm4CbcZeroEncrypt("1ab姚鑫@#!","b   e82c53a6c452f2e","gatherdataeworld")
32e4c73ebdfed40a6ffd6f8fc11d86d7

JavaSm4CbcZeroDecrypt

ClassMethod JavaSm4CbcZeroDecrypt(cipherText As %String, keyStr As %String, ivStr As %String, keyType As %String = "text", outputFormat As %String = "hex") As %String
USER>w ##class(Util.Impl.EncryptionUtils).JavaSm4CbcZeroDecrypt("32e4c73ebdfed40a6ffd6f8fc11d86d7","be82c53a6c452f2e","gatherdataeworld")
1ab姚鑫@#!

JavaSm4EcbPkcs5Encrypt

ClassMethod JavaSm4EcbPkcs5Encrypt(plainText As %String, keyStr As %String, keyType As %String = "text", outputFormat As %String = "hex") As %String
USER>w ##class(Util.EncryptionUtils).JavaSm4EcbPkcs5Encrypt("1ab姚鑫@#!","975C7   238C3824FB0")
7ad4159325eb143c2e7338cd42514ea3

JavaSm4EcbPkcs5Decrypt

ClassMethod JavaSm4EcbPkcs5Decrypt(cipherText As %String, keyStr As %String, keyType As %String = "text", outputFormat As %String = "hex") As %String
USER>w ##class(Util.EncryptionUtils).JavaSm4EcbPkcs5Decrypt("7ad4159325eb143c2e7338cd42514ea3","975C7238C3824FB0")
1ab姚鑫@#!

JavaSm4EcbPkcs7Encrypt

ClassMethod JavaSm4EcbPkcs7Encrypt(plainText As %String, keyStr As %String, keyType As %String = "text", outputFormat As %String = "hex") As %String
USER>w ##class(Util.EncryptionUtils).JavaSm4EcbPkcs7Encrypt("1ab姚鑫@#!","975C7   238C3824FB0")
7ad4159325eb143c2e7338cd42514ea3

JavaSm4EcbPkcs7Decrypt

ClassMethod JavaSm4EcbPkc7Decrypt(cipherText As %String, keyStr As %String, keyType As %String = "text", outputFormat As %String = "hex") As %String
USER>w ##class(Util.EncryptionUtils).JavaSm4EcbPkcs7Decrypt("7ad4159325eb143c2e7338cd42514ea3","975C7238C3824FB0")
1ab姚鑫@#!

4. RSA

JavaRsaEncryptByPublicKey

ClassMethod JavaRsaEncryptByPublicKey(content As %String, publicKey As %String, keyType As %String = "base64", outputFormat As %String = "base64", encoding As %Integer = 2) As %String
USER>w ##class(Util.EncryptionUtils).JavaRsaEncryptByPublicKey("1ab姚鑫@#!","MI   IBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhZuxSMZ2WkQBkJL183S3lcefQBL1Yor/fS0kQqllcOWSUTPGa+MAdnUtA5K+QheYNURMKxJfRout6qUHijXybnh4g4LEtDhOyn7YppEd9EtzeorYdUCplYFgEN+MEAV9gqH9xp0fhHet7w8aAfVuBU2VVIZ3dKeaSZepSbmXaSlEMQ3kE1+mdVv63SW1PyAS7m8v0rKtP7yu97227SK9M2djjqu8MYNFMHNrxv2VWOklrsllUzV4/jWxa9bQqH91/ws9kmOKYdMSKpzhKcnAa6LJroHHZbRXPIPn+zcPunRzoPg1sAdmRJ+dgZiB6dgVwdgMZCYmsc3+LcKYKjyXNwIDAQAB")
FS/WyGnOeEDaiYvFEIuXVtlRPpK5pF56SjOnG37Gqu8OxvH9n48knCmZ6hMMy43GNymBhUhz8lK/+SQSIgE1QNDBVdyGlWA4OJ5xeJFqyvZ4cdMgZDUpZrUKw0EvsRAu9sJ5Gh1g516WzSHzGFXh2FauXFAjrlUlO7yD4uG84ACaAel4Tb0pm6BgsxNGNI88InjN1nq5r+Dyw4Rt4CpcuNgfcobni9oYlPSfiaV5qHrQtr/tIHTRtU0opgon/9wRK8H027F3ksWnH9d8q7H+sJMFkFixQCakWkCsaGmjustZW9TnbwcBVS8/vn0ijdDxYIlYpYMT0VosvhPFncBmow==

JavaRsaDecryptByPrivateKey

ClassMethod JavaRsaDecryptByPrivateKey(content As %String, privateKey As %String, keyType As %String = "base64", outputFormat As %String = "base64", encoding As %Integer = 2) As %String
USER>w ##class(Util.EncryptionUtils).JavaRsaDecryptByPrivateKey("Dr3B3lk02lXnQAjyArby8ZX5Pbj90/PrHFZdqxeN5nLQXYVJYaD7JSd5Am5y43Jhh6yPqiUHnNAscKCUcIOW60kyT0wBm1lKgbGP2e0fb8U6IHrQarIPPd3dlLMj4pHCN9JwP1Jm+Tb9T/e5xmEkLrZpC3RfEf/NvSl6IdGXzPjQcrwgY8U6+WgwPtUPIezt0ujJwdW1ZmFUq7hO2qpGHyX9z/0phCW7zPYV3np+PRxl/Dqxep3EkLNQKRf1ihPLerMctKzeEengNPCERURytCCcXD0gHZfLiGC3gbNnSvWHNTGMeVrW/AE0c815eOm+HQq1onrlmgFSwp8MF7QM7w==","MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCFm7FIxnZaRAGQkvXzdLeVx59AEvViiv99LSRCqWVw5ZJRM8Zr4wB2dS0Dkr5CF5g1REwrEl9Gi63qpQeKNfJueHiDgsS0OE7KftimkR30S3N6ith1QKmVgWAQ34wQBX2Cof3GnR+Ed63vDxoB9W4FTZVUhnd0p5pJl6lJuZdpKUQxDeQTX6Z1W/rdJbU/IBLuby/Ssq0/vK73vbbtIr0zZ2OOq7wxg0Uwc2vG/ZVY6SWuyWVTNXj+NbFr1tCof3X/Cz2SY4ph0xIqnOEpycBrosmugcdltFc8g+f7Nw+6dHOg+DWwB2ZEn52BmIHp2BXB2AxkJiaxzf4twpgqPJc3AgMBAAECggEAEPnaSbvlt8xiQoNZusg+t0o44sRF53JvyfDdZZbua6zPrX+dm4GpQmPbB1Qy1mT3EvWNk/9umaEPxPuY/KekGQM3lMYdxiRNZo89adSQcMTRdGWF4UgJBBT/JsWwnyyDaQC6JO073vHx6KkLjeooQ4Y7DhVTwj+1a9pYSSTKpzLHC/SCEA2tfPZU5wcca0/y+686vtDucWhwAP+SLX7SeeddEM5PgNK2IcKucsD3muypg8TFqQctwmQw+zCQvp3w6L3As4FLKkI8YUTnxntkec1OQqgcgxpfcxaVGbt8TDaTg/lnch2dcFW1sIjLmcDgKX5XRkKH4kHWaQmSXSdMeQKBgQDBBImE3Hgz8elsljKm+LduKgjpBuP0O06afLc1oVUWkV3xhN1ho57HJpj4lrB+yf+mNSefsS+BUB3bVCW/NFVbaFSrCta4ylduNHz7+uGkswEV7HgOwU6vH39K9Fi3fZpotvBIIa2UFHyltAdiNVO0/x8EHn+80H+txSYfEqvhNQKBgQCxNHZp9Rcs1E7d7BJWuWCsCKyK7AlXpIOuD58EedtdAtJqcIIR51GCe1UzqNVFKyRECPLcHMlZHnYtHYQflxFeuc0/VHxJ9zx5VemCRRklLydvFBShRUfZcTkeBC0EGjU0fjdp3cJU2VARV93LLL1g9ujYaruHpW0o8CDnMUbwOwKBgA2jm3AXACtzgbIZnvSriJKxR7Xntb3xXumNvIh+oPuaRBAn+ljG7hZWhOK0Cz66WWVORkGDjL7PgXyZIp2zPgDai3kWp/ug2LLB5L8NiFpSB9abwhQQ1tWLHTyXrZkxt/KEUtBWCOT42aH/6bGn4QVeLbvlx9L4zLzjvIDfmeOtAoGAahDHy9YagAe4CRczRtuApJgwhpqPYPkkpDvPZ4N0rLByt6kOAZ9eZ2Zg8iHdPaB7/YkJrHxCfGhCPfDL04i9qeA2nPB50F/+v3WP5hxr15jo1pDDZGAuiFU/5dqEA0+YhwoBKwnENrs4NJlONT1bQT2o01jXVHLM6tMILrmNB18CgYApIBXPauzUbxAXpVHJqbBQl/EX4pSt5K5mzAwXnWxKir+GeBkqBzDx+8eZcaQLT9pgZGPSXeg+g12Ik2nIcPaCK09vypHsajwkV3g06ZQ5UaMeoh9F3Fg0LJRhZi/RMvpQlH3ZzaQWoN35saRd7y/z9L/tQImxBWVbhdtP5bsPtg==")
1ab姚鑫@#!

JavaSignByha256WithRsa

ClassMethod JavaSignBySha256WithRsa(content As %String, privateKey As %String, keyType As %String = "base64", outputFormat As %String = "base64") As %String
USER>w ##class(Util.EncryptionUtils).JavaSignBySha256WithRsa("appid=&nonce=fc8d5a2d-be00-4e9f-852d-1a5935246e0c&timestamp=1750660051161","MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCnG2oVd38TAzh1KD0kna4P3dJhYVLrf2HRbiZAhqp9RuZDn//O/x69FmclsJlxBzbHgiUfAlMi1UnkELNTOhq6eJgrx7C6vUBFIFgYmsx6NBSIiJdAlhNa9ASA1Fvn7HlIdRTau/oV/D9PYM5QV86J2tiywbFWTHVir7uymueHFpinygXN4HBYSxn+2m9rX8O2IWNcGv8aCEvSdbflEn0pusjsMRT3NvZmWo/T8kw6WCcbkEeGKowBsRiObcFilCmO+MLzYUMQb4wI55aj9Y4RTdifxzinmv8Bvi2IWGlxZOpT3mQCE8CK/dez3wMqgVFlDENxNsLDGUBbKG/EKTN7AgMBAAECggEAH4futmo70gyThJe5IcWW6GuEnNdOXB1HCcts8FP4q3bLUAtKq3Y8CJXHlLcD3O3tiiumcXlw0mvIa34zOAsIrBLBM9GUKUg4blKyDMJ4vr5A+Zo8X/VxZYIRr3ViehqGsANXkgZSI//aulGb3FEVKbHfnasqmQwIQjzCf+r2sOhl7Vay2iy/ii5URhXmuG2mUOtBAFlcqnlmRPNnw6AB7b/VZjjM1tLQZwxkPi9BwYEbSQgqNo2PNd/2bqzqC8VaN4Ptdvepfd5Sa8glYFD2gEhGEXmjSFHxi3wiwyB1YFmDuTueWZCjKhQHCUCURh5ZiAy6mOjZ8sUFoNw14sVTkQKBgQDqj3qBWV+vwOnpzch/B7jPnr5hCNKl0Q1LEatA4PDxm74x4IW7Azqw1YlyXDXjVg3cmVada3PHKmELLSKfq4QxKLyi+loUFvGXksvo5t19mqZGFu1F/kL/8vbJdNkdGMhdhQR2effSEkjZSJDq9ELcUS1eANfia55+qfaTbew2/wKBgQC2YZUdApv15na1dksvEWADZiVRqc8jgT84mYFfT9JufoGt+29V0gqdDgwMJiOsEw8Gmn/RduzOSviEpr3Dlwc7/m6zOkxxUDIOQPmpgYHAXNgMjpI4grrfGxUZ0Bug9XjmWVxbzplz8VVJVWkO7EimYZ8pjkaN9LYUgJcJR/hfhQKBgQCw6Lg32MWflDuYOLnQfW15QjxKiVH++DYzeUcVrtJrF9ESY0nZq+zXNKbu1vdZ2CyqRgiawFFZVPBOcqNblAwm25eywGmyHz/l1zTuGznQoxRnZqFcmhHEY2aYuQWLuYZdapbcGM+95EaHgwCyBLps2tkBvlcVEaA/3kb4GP8A1wKBgQCnu205BfpLl84bK5UPz6n+1kWCKmrvm2F6e2sJLk85Aa3gRbrqMcdDE/UugzERg2GxUAw3p2k4fKi8zuD9bfvgSCqlOPuuxvOSOl2icBHVyU2FluWRhWG56J1qZQPT745mQ072vDZS9GPckumRKOvT4TpRLKFk0udWScEebwtVRQKBgQCCS+gxsOLoJ64Lf1Tfa0GCJCzYJKol9BmoShw8Tvt8JMDm7vxt+o2E4ZRuzw0gdO4YsAMEe4jSXwK/+2BmsyjaTHqLeJL/jXTXNGEECPd/GYlaMOT9WuEb6oADS1DFPVCzzXj+lMe6kYyY4Uv87VejrOxBqsjzWdg9TZ61fvSjJg==")
K54e8FNcXKlJgOHwnOT5B5ee4p8R6R91gBLanJsh+REgiB3FaQzV9c8wd+P/4aowfQ/L6l+lXZnO6I7AEA51+JjpMQzSvV8Z+Q00Zn1iohx6v2+hLhe16CRyPg6pDmTwNduadskUubqgKBHqBuGcZ8+lAH+9LnSPH/+YAa6adSA5EFbfehp06Jc3/uIvNVXmwqH+3nvhaJuSeyW0Z4SvPXEtYkL+J3Q5/sB8WlUoD3N56Xwv/gsHLTNhL9SzMpFdHWnss38Qv2sajUuUojnkFOsdO9y1lVtsuRsKV7blRX8dhKWYOhMF/U9wXYPY7Yc0sR7L4iT4K62tbaggGhElmg==

JavaSignBySha1WithRsa

ClassMethod JavaSignBySha1WithRsa(content As %String, privateKey As %String, keyType As %String = "base64", outputFormat As %String = "hex") As %String
USER>w ##class(Util.EncryptionUtils).JavaSignBySha1WithRsa("1ab姚鑫@#!","MIIEvg   IBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCxoREOdwF3UC7jcaZlYt7GnwLyGI09xZsg1x6bCYR2fc0/NI6XA76dTYKCwcuROSROoHvJyZ1jeEpMZzq6h+GGO0gW4rlMnSjoymW2IXW7wwWLqHTLpjC5KqYiQwcvAU4eumCPVa3MApFdrm+hgvZfDrRlslldSAlZ0gYXJFJpaHg9TdPP+jD1mIyJ19/7YWycWp/cnPzt3tKQZLyihDVce/UeG84WV9OXrhz6R5SMfmCu2VgghKDj3dFpK8GzKFXKvBO9+gvfQOne6+kps3CfvB7ZTKRIpoqIA2VLhYOYBWXoIJoVtmzNHCGaiaGOB7FzJBsN1V5sViG3juReu2fBAgMBAAECggEBALFylBV9MUu+IHk6id3y3VZSd6DeggrZo1U1Ue/TnC67EhU4LdIS/ZMrYVu6ueAD049wpvk4njBGdQLKhVLed5+fDS8/o5kzzzBvMRi3aGQAOUQBL1xaU4ZHYtwLVdvRU/dCfT/zecG6Nvn9Tqtspy7jA7gsaTXUxvKh60+nC2UcOFa8NVAq30biByQ0ClXpG5+HAoJSyQuomWRW1Dm0uTfNzJOOzcp/TYgxzL9Pw9h589oIJiBf0o0EYVOKG4CznF4Gn7bjOPluDB3VGj3au1BYTGD71ksZsbmCf2lbbXVlAKPyZ6bfYtkV6wLXGLzNS0HkOkFR4PIlIspy2IoeZ/kCgYEA866HC3VyKQwowMeQsX1AHweMTxAEe4wsbWJiuha/Ii+qi/06NipjZUyYiquwTQJo/qkBqH7EIKEsWQvcoqkH1dlnzXM7RhYkscCe4DQv5MAr3C70vMhC+NVj6L9lz5GfNNXf6clT3zLvLFHDVKc5iX1fA6YeobndbVPQyna6t18CgYEAupvBlPboKUBG4S+SLUneYsuj0c6FtSqai/sSqEX2IOXUF3B2uwWz+aWDjbhMBPqunTMdW2+FmiaHRySzF8Vxrc2EDN5t6ROOZAG8c5wNgkYDD4nhUabRfTYjK5NkvQHkkZ4xuNdPVO0XkaxV3FXiwzacUr93Og7Eavk7AR6l1N8CgYBqpmjuZ/GV639umClItSO6MOiEteLwW7IaEaRaA5iVkr0W1baDfFvSOwrMLkZT/gkL49YY85pNGZ06P8nJ2ybVvngC4DsB+rEGpuIiCFUpzb2keVydvxwooeQ/On2Jshc23aBJRtcRac5p3EMcKrAw75EFHNBtQdaagcNwyTQBCwKBgQCxyv64mDqAOw6NNI7YeX3ZsV4m4tb/0lSnNBMFooqrs23M20k0TW25WJorp8E+KT2+5tl8qZeoVDclcHD2IBd8WcgLns0neYt7+y97Et7IFT6LSnoUGpWT78W4mdksP6Zvm0KScwnRx4diMskngejox5pPOL824KUBqu4t1e54DwKBgHyRXbFpDxo1ylqitmV7auGTDnoPprU8QFOeWLgCJvkDLLXjgXz21iQ2CmmWCvVgHrnPUaWT19Q9F1fnpslYaY4AIYaZgeejLo5QidmYga8FP3/npnx5WNS6cejx4qOebigWhDHZag34j9CWDrC8+l/WRlcBvFbONv2YKTxJof+5")
7f1fecca1b737f97db39166984b6f31fdf9d83cb29728c29adc7a56ef377a82e4e17c3d00c15affcbd4edd0d9f3935da26741b8fdc63792c013c7f8f293e690c16bf279600e35eb72004dc06950b550a786e5438d61011c6ccfecd076ac53205ff19fbdcf3bb773201263face5c01329c274f4274a222346a93479ccdedeca9fcb1827471f98c0b7ea111bcae907f45d08a0773a941ac14f86f85e41a3765045307c5291a93abb97b50780d26b33ff078698fe39b09805c5e561cafc2c952efed921f01814acde3fcac3e654a1ec35f7c42ac5320f47bc24e7847349373a7a90be03411617d756648ad6f2f265eeb51d34adb8e7a69b3395b1fba2ba2ad64ff5

JavaVerifyBySha1WithRsa

ClassMethod JavaVerifyBySha1WithRsa(content As %String, sign As %String, publicKey As %String, keyType As %String = "base64", outputFormat As %String = "hex") As %String
USER>w ##class(Util.EncryptionUtils).JavaVerifyBySha1WithRsa("1ab姚鑫@#!","7f1f   ecca1b737f97db39166984b6f31fdf9d83cb29728c29adc7a56ef377a82e4e17c3d00c15affcbd4edd0d9f3935da26741b8fdc63792c013c7f8f293e690c16bf279600e35eb72004dc06950b550a786e5438d61011c6ccfecd076ac53205ff19fbdcf3bb773201263face5c01329c274f4274a222346a93479ccdedeca9fcb1827471f98c0b7ea111bcae907f45d08a0773a941ac14f86f85e41a3765045307c5291a93abb97b50780d26b33ff078698fe39b09805c5e561cafc2c952efed921f01814acde3fcac3e654a1ec35f7c42ac5320f47bc24e7847349373a7a90be03411617d756648ad6f2f265eeb51d34adb8e7a69b3395b1fba2ba2ad64ff5","MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsaERDncBd1Au43GmZWLexp8C8hiNPcWbINcemwmEdn3NPzSOlwO+nU2CgsHLkTkkTqB7ycmdY3hKTGc6uofhhjtIFuK5TJ0o6MpltiF1u8MFi6h0y6YwuSqmIkMHLwFOHrpgj1WtzAKRXa5voYL2Xw60ZbJZXUgJWdIGFyRSaWh4PU3Tz/ow9ZiMidff+2FsnFqf3Jz87d7SkGS8ooQ1XHv1HhvOFlfTl64c+keUjH5grtlYIISg493RaSvBsyhVyrwTvfoL30Dp3uvpKbNwn7we2UykSKaKiANlS4WDmAVl6CCaFbZszRwhmomhjgexcyQbDdVebFYht47kXrtnwQIDAQAB")
1

5. DES

JavaDesEcbPkcs5Encrypt

USER>w ##class(Util.EncryptionUtils).JavaDesEcbPkcs5Encrypt("1ab姚鑫@#!","MTIzN   DU2Nzg=")
Kvo+vm9pScNRllrCV8LMkA==

JavaDesEcbPkcs5Decrypt

USER>w ##class(Util.EncryptionUtils).JavaDesEcbPkcs5Decrypt("Kvo+vm9pScNRllrCV8LMkA==","MTIzNDU2Nzg=")
1ab姚鑫@#!

6. 3DES

JavaDesedeEcbPkcs5Encrypt

ClassMethod JavaDesedeEcbPkcs5Encrypt(plainText As %String, keyStr As %String, keyType As %String = "base64", outputFormat As %String = "base64") As %String
USER>w ##class(Util.EncryptionUtils).JavaDesedeEcbPkcs5Encrypt("1ab姚鑫@#!","5f   e300c90369642d3a15d234c0668f74")
ZMb9ru7du2h4LfcEC/i4qA==

JavaDesedeEcbPkcs5Decrypt

ClassMethod JavaDesedeEcbPkcs5Decrypt(cipherText As %String, keyStr As %String, keyType As %String = "base64", outputFormat As %String = "base64") As %String
USER>w ##class(Util.EncryptionUtils).JavaSm4EcbPkcs7Decrypt("7ad4159325eb143c2e7338cd42514ea3","975C7238C3824FB0")
1ab姚鑫@#!

JavaDesedeCbcPkcs7Encrypt

ClassMethod JavaDesedeCbcPkcs7Encrypt(plainText As %String, keyStr As %String, ivStr As %String, keyType As %String = "base64", outputFormat As %String = "base64", url As %String = {..#StandardAlgUrl}) As %String
USER>w ##class(Util.EncryptionUtils).JavaDesedeCbcPkcs7Encrypt({"ScheduleOperatorID":"10999","ScheduleOperatorName":"陈医生","MedRecNO":"123","Timestamp":"14904   15566"}.%ToJSON(),"eWorldTomTaw#7=*","TomTaw#7")
VcyCfRqZ2TOpXoC+qOzAjQJ1195tlaleBEjCie4u9RPvfhua37PGs2r8+1pJUCOmv/thVnUF2PP3K5z5fypx12lKnHHulxNlYi5rN194RDntjv9yEgh01UhkwZxvku4wosD1ECxMIXTMNt88EhipHA==

JavaDesedeCbcPkcs7Decrypt

ClassMethod JavaDesedeCbcPkcs7Decrypt(cipherText As %String, keyStr As %String, ivStr As %String, keyType As %String = "base64", outputFormat As %String = "base64", url As %String = {..#StandardAlgUrl}) As %String
USER>w ##class(Util.EncryptionUtils).JavaDesedeCbcPkcs7Decrypt("VcyCfRqZ2TOpXoC+qOzAjQJ1195tlaleBEjCie4u9RPvfhua37PGs2r8+1pJUCOmv/thVnUF2PP3K5z5fypx12lKnHHulxNlYi5rN194RDntjv9yEgh01UhkwZxvku4wosD1ECxMIXTMNt88EhipHA==","eWorldTomTaw#7=*","TomTaw#7")
{"ScheduleOperatorID":"10999","ScheduleOperatorName":"陈医生","MedRecNO":"123","   Timestamp":"1490415566"}

JAVA 加密服务 - 非标准加密

SignSm3WithSm2

ClassMethod SignSm3WithSm2(plainText As %String, key As %String, privateKey As %String) As %DynamicObject
USER>w ##class(Util.EncryptionUtils).SignSm3WithSm2("1ab姚鑫","1HDFSDPCO01P3F60C  80A00005238496E","I86Px211CbkGhovKjwAZ5zTjWRPAPkeIQKgXixxYSa4").%ToJSON()
{"msg":"","code":0,"data":{"cipherText":"hbv9F7i/QGkTSfjR6Lo+vHhQEKH8/gb7oHyQm7XUmGdxX4IQOrkCuDKiPxIo0C7ejARMPsS21G3ZpoTxT3Vl0g=="}}

SignSm3WithSm2Stream

ClassMethod SignSm3WithSm2Stream(plainText As %Stream.GlobalCharacter, key As %String, privateKey As %String) As %Stream.GlobalCharacter

SignSm3WithSm2StreamV2

ClassMethod SignSm3WithSm2StreamV2(data As %Stream.GlobalCharacter, appId As %String, appSecret As %String, publicKey As %String, privateKey As %String) As %Stream.GlobalCharacter

JavaNonstandardYlswgdEncrypt

JavaNonstandardYlswgdDecrypt


二、编码方法

各方法单参数含义(strhexcontent 等)见文档开头 「参数约定与填写说明」第 9 节

1. Base64

Base64Encode

Base64URLEncode

Base64Decode

Base32Encode

Base32Decode

2. HEX

Hex2ByteEncode

ClassMethod Hex2ByteEncode(content As %String) As %String

Hex2ByteDecode

ClassMethod Hex2ByteDecode(str As %String) As %String

HexEncode

ClassMethod HexEncode(str As %String) As %String

HexDecode

ClassMethod HexDecode(hex As %String) As %String

3. UTF8

UTF8Encode

ClassMethod UTF8Encode(str As %String) As %String

UTF8Decode

ClassMethod UTF8Decode(str As %String) As %String

4. Unicode

UnicodeEncode

ClassMethod UnicodeEncode(str As %String) As %String

UnicodeDecode

ClassMethod UnicodeDecode(str As %String) As %String

5. URL

URLEncode

URLDecode