{"id":1785,"date":"2026-05-12T10:34:48","date_gmt":"2026-05-12T02:34:48","guid":{"rendered":"http:\/\/hisui.cn\/?p=1785"},"modified":"2026-05-14T10:34:58","modified_gmt":"2026-05-14T02:34:58","slug":"iris%e5%8a%a0%e5%af%86%e6%8e%a5%e5%8f%a3%e8%af%b4%e6%98%8e","status":"publish","type":"post","link":"http:\/\/hisui.cn\/?p=1785","title":{"rendered":"IRIS\u52a0\u5bc6\u63a5\u53e3\u8bf4\u660e"},"content":{"rendered":"<p>[toc]<\/p>\n<h1>\u52a0\u5bc6\u63a5\u53e3\u8bf4\u660e<\/h1>\n<h2>\u6587\u6863\u7b80\u4ecb<\/h2>\n<p>\u672c\u8bf4\u660e\u9762\u5411\u5728 <strong>IRIS ** \u7b49\u73af\u5883\u4e2d\u8c03\u7528\u9879\u76ee\u52a0\u5bc6\u4e0e\u7f16\u7801\u80fd\u529b\u7684\u5f00\u53d1\u4eba\u5458\u3002\u6587\u6863\u6c47\u603b **<code>Util.EncryptionUtils<\/code><\/strong>\uff08\u6458\u8981\u3001\u5bf9\u79f0\u52a0\u5bc6\u3001\u56fd\u5bc6\u3001RSA\u3001Java \u7f51\u5173\u7b49\uff09\u4e0e <strong><code>Util.EncodingUtils<\/code><\/strong>\uff08Base64\u3001Hex\u3001URL\u3001Unicode \u7b49\uff09\u7684\u7c7b\u65b9\u6cd5\uff1a\u7ed9\u51fa\u7528\u9014\u3001\u53c2\u6570\u3001\u8fd4\u56de\u503c\u3001ObjectScript \u7b7e\u540d\u53ca\u53ef\u8c03\u5f0f\u793a\u4f8b\uff0c\u4fbf\u4e8e\u4e0e\u7b2c\u4e09\u65b9\u7cfb\u7edf\u5bf9\u8d26\u6216\u8054\u8c03\u3002<\/p>\n<p>\u9605\u8bfb\u5efa\u8bae\uff1a\u5148\u6d4f\u89c8 <strong>\u300c\u6587\u6863\u8bf4\u660e\u300d<\/strong> \u4e86\u89e3\u7ed3\u6784\uff1b\u8c03\u7528\u524d\u52a1\u5fc5\u9605\u8bfb <strong>\u300c\u53c2\u6570\u7ea6\u5b9a\u4e0e\u586b\u5199\u8bf4\u660e\u300d<\/strong>\uff0c\u5176\u4e2d\u8bf4\u660e\u4e86 <code>outputType<\/code>\u3001<code>keyType<\/code>\u3001<code>cipherType<\/code>\u3001SM4\u3001RSA \u8def\u5f84\u3001Java \u7f51\u5173\u7b49\u5e38\u89c1\u586b\u6cd5\uff0c\u53ef\u51cf\u5c11\u56e0\u7f16\u7801\u6216\u5bc6\u94a5\u8868\u793a\u65b9\u5f0f\u4e0d\u4e00\u81f4\u5bfc\u81f4\u7684\u9519\u8bef\u3002\u6b63\u6587\u6309\u300cIRIS \u539f\u751f\u52a0\u5bc6 \u2192 Java \u52a0\u5bc6\u670d\u52a1 \u2192 \u7f16\u7801\u65b9\u6cd5\u300d\u5206\u5757\uff0c\u7b97\u6cd5\u987a\u5e8f\u4e0e\u95e8\u9762\u7c7b\u4e2d\u7684\u65b9\u6cd5\u5206\u7ec4\u5927\u4f53\u4e00\u81f4\u3002<\/p>\n<p>\u6587\u6863\u5185\u5bb9\u529b\u6c42\u4e0e\u4ed3\u5e93\u5185 <strong><code>Util.EncryptionUtils<\/code><\/strong>\u3001<strong><code>Util.EncodingUtils<\/code><\/strong> \u53ca <strong><code>Util.Encryption.*<\/code><\/strong> \u7684\u5f53\u524d\u5b9e\u73b0\u4e00\u81f4\uff1b\u82e5\u4ee3\u7801\u53d8\u66f4\u540e\u793a\u4f8b\u6216\u53c2\u6570\u8bf4\u660e\u672a\u540c\u6b65\uff0c\u4ee5\u6e90\u7801\u4e0e\u5b9e\u9645\u8fd0\u884c\u7ed3\u679c\u4e3a\u51c6\u3002<\/p>\n<h2>\u6587\u6863\u8bf4\u660e<\/h2>\n<p>\u672c\u6587\u6863\u6309\u4e24\u7c7b\u7ec4\u7ec7\uff1a<\/p>\n<ul>\n<li>\u52a0\u5bc6\u65b9\u6cd5<\/li>\n<li>\u7f16\u7801\u65b9\u6cd5<\/li>\n<\/ul>\n<p>\u6bcf\u4e2a\u65b9\u6cd5\u5747\u91c7\u7528\u7edf\u4e00\u6a21\u677f\uff1a<\/p>\n<ul>\n<li>\u63cf\u8ff0<\/li>\n<li>\u53c2\u6570\uff08\u540d\u79f0\u4e0e\u7c7b\u578b\uff1b<strong>\u5177\u4f53\u53d6\u503c\u4e0e\u4e92\u65a5\u5173\u7cfb\u89c1\u4e0b\u8282<\/strong>\uff09<\/li>\n<li>\u8fd4\u56de\u503c<\/li>\n<li>\u65b9\u6cd5\u7b7e\u540d<\/li>\n<li>\u8c03\u8bd5\u793a\u4f8b<\/li>\n<\/ul>\n<p>\u5b9e\u73b0\u4e0e\u95e8\u9762\u7c7b\u5bf9\u5e94\u5173\u7cfb\uff1a<strong><code>Util.EncryptionUtils<\/code><\/strong> \u4e3a\u5bf9\u5916\u95e8\u9762\uff0c<strong><code>Util.EncodingUtils<\/code><\/strong> \u4e3a\u7f16\u7801\u95e8\u9762\uff1b\u903b\u8f91\u5728 <strong><code>Util.Impl.EncryptionUtils<\/code><\/strong>\u3001<strong><code>Util.Impl.EncodingUtils<\/code><\/strong>\uff08\u53ca <code>Util.Encryption.*<\/code> \u7b49\uff09\u3002\u4e0b\u6587\u793a\u4f8b\u4e2d\u7684 <code>##class(Util.EncryptionUtils)<\/code> \u4e0e <code>##class(Util.EncodingUtils)<\/code> \u5747\u6307\u4e0a\u8ff0\u95e8\u9762\u3002<\/p>\n<hr \/>\n<h2>\u53c2\u6570\u7ea6\u5b9a\u4e0e\u586b\u5199\u8bf4\u660e<\/h2>\n<h3>1. <code>outputType<\/code> \/ <code>outputFormat<\/code>\uff08\u6458\u8981\u3001HMAC\u3001\u5bf9\u79f0\u52a0\u5bc6\u7684\u8f93\u51fa\u6216 Java \u63a5\u53e3\u7684\u683c\u5f0f\uff09<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u53d6\u503c<\/th>\n<th>\u542b\u4e49<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>hex<\/code><\/td>\n<td>\u5c0f\u5199\u5341\u516d\u8fdb\u5236\u5b57\u7b26\u4e32<\/td>\n<\/tr>\n<tr>\n<td><code>base64<\/code><\/td>\n<td>\u6807\u51c6 Base64<\/td>\n<\/tr>\n<tr>\n<td><code>raw<\/code><\/td>\n<td>\u539f\u59cb\u4e8c\u8fdb\u5236\u4e32\uff08\u7ec8\u7aef\u91cc\u53ef\u80fd\u663e\u793a\u4e3a\u4e71\u7801\uff0c\u9002\u5408\u7a0b\u5e8f\u95f4\u4f20\u9012\uff09<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<ul>\n<li>\u7a7a\u5b57\u7b26\u4e32\u6216\u975e\u6cd5\u503c\u4f1a\u56de\u9000\u4e3a<strong>\u5404\u65b9\u6cd5\u81ea\u5df1\u7684\u9ed8\u8ba4\u503c<\/strong>\uff08\u5e38\u89c1\u4e3a <code>hex<\/code> \u6216 <code>base64<\/code>\uff0c\u4ee5\u65b9\u6cd5\u7b7e\u540d\u4e3a\u51c6\uff09\u3002<\/li>\n<li><strong>\u522b\u540d<\/strong>\uff08\u4ec5\u8d70 <code>NormalizeOutputType<\/code> \u7684\u8def\u5f84\uff09\uff1a<code>base<\/code> \u89c6\u4e3a <code>base64<\/code>\uff1b<code>text<\/code> \u89c6\u4e3a <code>raw<\/code>\u3002<\/li>\n<li><strong>MD5<\/strong> \u7684 <code>outputType<\/code> \u53e6\u652f\u6301\u628a\u5b57\u9762\u91cf <code>text<\/code> \u8f6c\u6210 <code>raw<\/code>\uff08\u4e0e\u5176\u5b83\u65b9\u6cd5\u7684 <code>NormalizeOutputType<\/code> \u884c\u4e3a\u5bf9\u9f50\uff09\u3002<\/li>\n<\/ul>\n<h3>2. <code>keyType<\/code> \/ <code>ivType<\/code>\uff08\u5bc6\u94a5\u3001IV \u5982\u4f55\u89e3\u7801\uff09<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u53d6\u503c<\/th>\n<th>\u542b\u4e49<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>text<\/code><\/td>\n<td>\u628a\u4f20\u5165\u7684 <code>%String<\/code> \u6309 <strong>UTF-8<\/strong> \u7f16\u6210\u5b57\u8282\uff0c\u518d\u4f5c\u4e3a\u5bc6\u94a5\u6216 IV<\/td>\n<\/tr>\n<tr>\n<td><code>hex<\/code><\/td>\n<td>\u628a\u5185\u5bb9\u5f53\u4f5c\u5341\u516d\u8fdb\u5236\u4e32\u89e3\u7801\u4e3a\u5b57\u8282<\/td>\n<\/tr>\n<tr>\n<td><code>base64<\/code><\/td>\n<td>Base64 \u89e3\u7801\u540e\u7684\u4e8c\u8fdb\u5236\u4f5c\u4e3a\u5bc6\u94a5\u6216 IV<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<ul>\n<li>\u82e5\u4f20\u5165\u975e\u6cd5\u7c7b\u578b\uff0c\u5b9e\u73b0\u4f1a\u6309\u9ed8\u8ba4\uff08\u591a\u4e3a <code>text<\/code>\uff09\u5904\u7406\u3002<\/li>\n<li><strong>HMAC-SM3<\/strong>\uff1a\u7b2c\u4e09\u4e2a\u53c2\u6570\u662f <strong><code>keyType<\/code><\/strong>\uff0c\u4e0d\u662f\u8f93\u51fa\u683c\u5f0f\uff1b\u5bc6\u94a5\u4e3a\u666e\u901a\u5b57\u7b26\u4e32\u65f6\u5e94\u586b <code>text<\/code>\u3002<\/li>\n<\/ul>\n<h3>3. <code>cipherType<\/code> \u4e0e AES \u89e3\u5bc6\u91cc\u7684 <code>outputType<\/code><\/h3>\n<p>\u5bf9\u79f0\u89e3\u5bc6\uff08\u5982 AES ECB\/CBC \u5404 <code>*Decrypt<\/code>\uff09\u9700\u8981\u77e5\u9053<strong>\u5bc6\u6587<\/strong>\u662f Base64\u3001Hex \u8fd8\u662f\u539f\u59cb\u5b57\u8282\uff1a<\/p>\n<ul>\n<li>\u82e5 <strong><code>cipherType<\/code> \u975e\u7a7a<\/strong>\uff1a\u4ee5 <code>cipherType<\/code> \u4e3a\u51c6\uff08<code>hex<\/code> \/ <code>base64<\/code> \/ <code>raw<\/code>\uff09\u3002<\/li>\n<li>\u82e5 <strong><code>cipherType<\/code> \u4e3a\u7a7a<\/strong>\uff1a\u4f7f\u7528 <strong><code>outputType<\/code><\/strong> \u8868\u793a\u5bc6\u6587\u7f16\u7801\uff08\u5386\u53f2\u517c\u5bb9\u53c2\u6570\u540d\uff09\u3002<\/li>\n<\/ul>\n<p>\u52a0\u5bc6\u4fa7 <code>outputType<\/code> \u8868\u793a<strong>\u8f93\u51fa<\/strong>\u5bc6\u6587\u7684\u7f16\u7801\uff1b\u89e3\u5bc6\u4fa7\u8bf7\u52ff\u6df7\u6dc6\u300c\u5bc6\u6587\u957f\u4ec0\u4e48\u6837\u300d\u4e0e\u300c\u5bc6\u94a5\u7c7b\u578b\u300d\u3002<\/p>\n<h3>4. AES\uff08IRIS \u539f\u751f\uff09<\/h3>\n<ul>\n<li><code>str<\/code>\uff1a\u660e\u6587\uff1b\u5185\u90e8\u6309 UTF-8 \u53c2\u4e0e\u8fd0\u7b97\uff08\u4e0e Impl \u4e00\u81f4\uff09\u3002<\/li>\n<li><code>key<\/code>\u3001<code>iv<\/code>\uff1a\u7ecf <code>keyType<\/code> \/ <code>ivType<\/code> \u89e3\u7801\u540e\u7684\u5b57\u8282\u957f\u5ea6\u987b\u7b26\u5408 <strong>AES-128 \/ 192 \/ 256<\/strong>\uff08<strong>16 \/ 24 \/ 32 \u5b57\u8282<\/strong>\uff09\uff0c\u9700\u4e0e\u5bf9\u63a5\u7cfb\u7edf\u4e00\u81f4\u3002<\/li>\n<li><strong>PKCS5<\/strong> \u4e0e <strong>PKCS7<\/strong> \u5728\u672c\u5e93 AES \u5b9e\u73b0\u4e2d\u7b49\u4ef7\uff08\u5757\u957f 16\uff09\u3002<\/li>\n<li><strong>ZeroPadding<\/strong>\uff1a\u660e\u6587\u672b\u5c3e\u8865 <code>0x00<\/code> \u81f3\u5757\u5bf9\u9f50\uff1b\u89e3\u5bc6\u4f1a\u53bb\u6389\u5c3e\u90e8\u8fde\u7eed <code>0x00<\/code>\uff08\u82e5\u660e\u6587\u672c\u8eab\u4ee5\u4e8c\u8fdb\u5236 0 \u7ed3\u5c3e\uff0c\u53ef\u80fd\u4e0e\u586b\u5145\u6df7\u6dc6\uff0c\u9700\u8c28\u614e\uff09\u3002<\/li>\n<\/ul>\n<h3>5. SM4\uff08<code>SM4Encrypt<\/code> \/ <code>SM4Decrypt<\/code>\uff09<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570<\/th>\n<th>\u586b\u5199\u8bf4\u660e<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>str<\/code><\/td>\n<td>\u660e\u6587\uff08\u52a0\u5bc6\uff09\u6216\u5bc6\u6587\uff08\u89e3\u5bc6\uff09<\/td>\n<\/tr>\n<tr>\n<td><code>key<\/code><\/td>\n<td>\u5bc6\u94a5\u6750\u6599\uff1b\u4e0e <code>keyType<\/code> \u4e00\u8d77\u51b3\u5b9a 16 \u5b57\u8282\u5bc6\u94a5\uff1a\u4e0d\u8db3\u672b\u5c3e\u8865 <code>0x00<\/code>\uff0c\u8d85\u8fc7\u53d6\u524d 16 \u5b57\u8282<\/td>\n<\/tr>\n<tr>\n<td><code>retType<\/code>\uff08\u52a0\u5bc6\uff09<\/td>\n<td>\u5bc6\u6587\u8f93\u51fa\u5f62\u5f0f\uff1a<code>BASE64<\/code> \u6216 <code>HEX<\/code>\uff08\u5927\u5c0f\u5199\u4e0d\u654f\u611f\uff09<\/td>\n<\/tr>\n<tr>\n<td><code>textType<\/code>\uff08\u89e3\u5bc6\uff09<\/td>\n<td>\u5bc6\u6587\u8f93\u5165\u5f62\u5f0f\uff1a<code>BASE64<\/code> \u6216 <code>HEX<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>keyType<\/code><\/td>\n<td><code>TEXT<\/code>\uff1aUTF-8 \u5b57\u8282\uff1b<code>HEX<\/code>\uff1a\u5341\u516d\u8fdb\u5236\uff1b<code>BASE64<\/code>\uff1a\u6807\u51c6 Base64\uff1b<code>BASE64URLSAFE<\/code>\uff1aURL \u5b89\u5168 Base64 \u5148\u8f6c\u6807\u51c6\u518d\u89e3\u7801<\/td>\n<\/tr>\n<tr>\n<td><code>padding<\/code><\/td>\n<td><code>PKCS7<\/code>\uff08\u4e0e\u5e38\u89c1 PKCS5 \u79f0\u547c\u4e92\u901a\uff09\u6216 <code>ZERO<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>mode<\/code><\/td>\n<td><code>ECB<\/code> \u6216 <code>CBC<\/code>\uff1b\u62fc\u5199 <code>EBC<\/code> \u4e5f\u4f1a\u88ab\u5f53\u4f5c ECB<\/td>\n<\/tr>\n<tr>\n<td><code>iv<\/code><\/td>\n<td>\u4ec5 <strong>CBC<\/strong> \u9700\u8981\uff1bIV \u4e0e\u5bc6\u94a5\u4f7f\u7528<strong>\u540c\u4e00\u5957<\/strong> <code>keyType<\/code> \u89c4\u5219\u89e3\u6790\u4e3a 16 \u5b57\u8282<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>6. \u539f\u751f RSA\uff08<code>RSAEncrypt<\/code> \/ <code>RSADecrypt<\/code>\uff09<\/h3>\n<ul>\n<li><code>plainText<\/code> \/ <code>cipherText<\/code>\uff1a\u660e\u6587\u6216 Base64 \u5bc6\u6587\uff08\u89c1\u5b9e\u73b0\uff09\u3002<\/li>\n<li><code>certPath<\/code> \/ <code>privatePath<\/code>\uff1a\u670d\u52a1\u5668\u4e0a <strong>IRIS \u8fdb\u7a0b\u53ef\u8bfb<\/strong> \u7684 <strong>PEM \u516c\u94a5\/\u79c1\u94a5\u6587\u4ef6\u7edd\u5bf9\u8def\u5f84<\/strong>\u3002<\/li>\n<\/ul>\n<h3>7. Java \u7f51\u5173\u52a0\u5bc6\uff08\u65b9\u6cd5\u540d\u4ee5 <code>Java<\/code> \u5f00\u5934\uff09<\/h3>\n<ul>\n<li><strong><code>keyType<\/code><\/strong>\uff1a\u4f9d\u65b9\u6cd5\u800c\u5b9a\u3002RSA \u7c7b\u53ef\u4e3a <strong><code>base64<\/code><\/strong>\u3001<strong><code>hex<\/code><\/strong> \u6216 <strong><code>pemFile<\/code><\/strong>\uff08\u516c\u94a5\/\u79c1\u94a5\u4e3a\u78c1\u76d8\u4e0a PEM \u6587\u4ef6\u8def\u5f84\uff09\uff1b\u5bf9\u79f0\u7c7b\u591a\u4e3a <code>text<\/code> \/ <code>hex<\/code> \/ <code>base64<\/code> \u7b49\uff0c<strong>\u4ee5\u7f51\u5173\u63a5\u53e3\u7ea6\u5b9a\u4e3a\u51c6<\/strong>\uff0c\u4f1a\u539f\u6837\u4f20\u5165 HTTP \u8bf7\u6c42\u4f53\u3002<\/li>\n<li><strong><code>outputFormat<\/code><\/strong>\uff1a\u5bc6\u6587\u6216\u7b7e\u540d\u8f93\u51fa\u683c\u5f0f\uff0c\u4e00\u822c\u4e3a <code>hex<\/code> \u6216 <code>base64<\/code>\uff08\u975e\u6cd5\u503c\u4f1a\u56de\u9000\u5230\u5b9e\u73b0\u4e2d\u7684\u9ed8\u8ba4\uff09\u3002<\/li>\n<li><strong><code>encoding<\/code><\/strong>\uff08RSA \u52a0\u89e3\u5bc6\uff09\uff1a<strong><code>1<\/code><\/strong> = OAEP\uff0c<strong><code>2<\/code><\/strong> = PKCS1Padding\uff08\u9ed8\u8ba4 <strong>2<\/strong>\uff09\u3002<\/li>\n<\/ul>\n<h3>8. \u7f16\u7801\u7c7b <code>Util.EncodingUtils<\/code><\/h3>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570<\/th>\n<th>\u8bf4\u660e<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>str<\/code> \/ <code>content<\/code><\/td>\n<td>\u5f85\u7f16\u7801\u6216\u89e3\u7801\u7684\u5b57\u7b26\u4e32<\/td>\n<\/tr>\n<tr>\n<td><code>hex<\/code>\uff08<code>HexDecode<\/code>\uff09<\/td>\n<td>\u4ec5\u542b\u5341\u516d\u8fdb\u5236\u5b57\u7b26\u7684\u4e32\uff0c\u89e3\u7801\u4e3a\u5b57\u8282\u540e\u6309 UTF-8 \u8fd8\u539f<\/td>\n<\/tr>\n<tr>\n<td><code>ConvertUrl(str, type)<\/code><\/td>\n<td><code>type<\/code> \u9ed8\u8ba4 <strong><code>equal<\/code><\/strong>\uff1a\u628a Base64 \u7684 <code>+\/=<\/code> \u6362\u6210 URL \u5b89\u5168\u5f62\u5f0f\uff1b\u5176\u5b83\u53d6\u503c\u89c1 <code>Util.Impl.EncodingUtils.ConvertUrl<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Base64 \/ Base32 \u7b49\uff1a\u7f16\u7801\u524d\u660e\u6587\u4f1a\u6309 <strong>UTF-8<\/strong> \u8f6c\u5b57\u8282\uff1b<code>UnicodeEncode<\/code> \/ <code>UnicodeDecode<\/code> \u4e3a\u7c7b URL\/JS \u98ce\u683c\u7684 Unicode \u8f6c\u4e49\u3002<\/p>\n<hr \/>\n<h1>\u4e00\u3001\u52a0\u5bc6\u65b9\u6cd5<\/h1>\n<h1>IRIS \u539f\u751f\u52a0\u5bc6<\/h1>\n<h2>1. MD5<\/h2>\n<p>\u6821\u9a8c\u7f51\u7ad9\uff1ahttps:\/\/www.jyshare.com\/crypto\/md5\/<\/p>\n<h3>MD5Encrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aMD5 \u6458\u8981\u7edf\u4e00\u8f93\u51fa\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code> \u660e\u6587\uff0c<code>outputType(hex\/base64\/raw)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u6309 <code>outputType<\/code> \u8f93\u51fa\u7684 MD5 \u6458\u8981<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod MD5Encrypt(str As %String, outputType As %String = \"hex\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).MD5Encrypt(\"1a\u59da\u946b\uff01.\",\"hex\")\na1f4cc2b0615babeba2a72f5cc4819c1\n<\/code><\/pre>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).MD5Encrypt(\"1a\u59da\u946b\uff01.\",\"base64\")\nofTMKwYVur66KnL1zEgZwQ==\n<\/code><\/pre>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).MD5Encrypt(\"1a\u59da\u946b\uff01.\",\"raw\")   \n\u00a1\u00f4\u00cc+\u00ba\u00be\u00ba*r\u00f5\u00ccH\u00c1\n<\/code><\/pre>\n<h3>HMACMD5Encrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aHMAC-MD5\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>\uff0c<code>key<\/code>\uff0c<code>keyType(text\/base64\/hex)<\/code>\uff0c<code>outputType(hex\/base64\/raw)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1aHMAC \u7ed3\u679c<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod HMACMD5Encrypt(str As %String, key As %String, keyType As %String = \"text\", outputType As %String = \"hex\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).HMACMD5Encrypt(\"1ab\u59da\u946b@#\uff01\", \"1234567890\", \"text\", \"hex\")\n9b03630a896fda4b376391d7572f2709\n<\/code><\/pre>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).HMACMD5Encrypt(\"1ab\u59da\u946b@#\uff01\", \"1234567890\", \"text\", \"base64\")\nmwNjColv2ks3Y5HXVy8nCQ==\n<\/code><\/pre>\n<h2>2. SHA<\/h2>\n<p>\u6821\u9a8c\u7f51\u7ad9\uff1ahttps:\/\/www.jyshare.com\/crypto\/sha1\/<\/p>\n<h3>SHA1Encrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aSHA1 \u6458\u8981\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>\uff0c<code>outputType(hex\/base64\/raw)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u6458\u8981<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod SHA1Encrypt(str As %String, outputType As %String = \"hex\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).SHA1Encrypt(\"1ab\u59da\u946b@#\uff01\")\n33c10475eb88ea8edb81d55cc683243caec06132\n<\/code><\/pre>\n<h3>SHA224Encrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aSHA224 \u6458\u8981\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>\uff0c<code>outputType(hex\/base64\/raw)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u6458\u8981<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod SHA224Encrypt(str As %String, outputType As %String = \"hex\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).SHA224Encrypt(\"1ab\u59da\u946b@#\uff01\")\n024fc87a6a6b5e10d5dd556da6996bd8b9c7e881d9c02ef6b3bd6a84\n<\/code><\/pre>\n<h3>SHA256Encrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aSHA256 \u6458\u8981\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>\uff0c<code>outputType(hex\/base64\/raw)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u6458\u8981<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod SHA256Encrypt(str As %String, outputType As %String = \"hex\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).SHA256Encrypt(\"1ab\u59da\u946b@#\uff01\")\n9e93e1e74f3c296f8c8a7911827611d67fa81125451b75a52393dd5b60af9a96\n<\/code><\/pre>\n<h3>SHA384Encrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aSHA384 \u6458\u8981\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>\uff0c<code>outputType(hex\/base64\/raw)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u6458\u8981<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod SHA384Encrypt(str As %String, outputType As %String = \"hex\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).SHA384Encrypt(\"1ab\u59da\u946b@#\uff01\")\n3b1e2e0e7bf956a303f43668b536bbc4bb15872228a58b06ce74b54c74cb6bf7ea6e75ce01f67b22d37e0f24e5600f6e\n<\/code><\/pre>\n<h3>SHA512Encrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aSHA512 \u6458\u8981\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>\uff0c<code>outputType(hex\/base64\/raw)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u6458\u8981<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod SHA512Encrypt(str As %String, outputType As %String = \"hex\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).SHA512Encrypt(\"1ab\u59da\u946b@#\uff01\")\nbf718aaf7018a5e2f914825ae805cd37775e8d524407369bd28b034c61e3d33fc8e1dc7784bb73eaf2db2e1042bccb340c63415d52b2df80f3986904b37b6d2a\n<\/code><\/pre>\n<h3>HMACSHA1Encrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aHMAC-SHA1\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>\uff0c<code>key<\/code>\uff0c<code>keyType(text\/base64\/hex)<\/code>\uff0c<code>outputType(hex\/base64\/raw)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u6458\u8981<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod HMACSHA1Encrypt(str As %String, key As %String, keyType As %String = \"text\", outputType As %String = \"hex\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).HMACSHA1Encrypt(\"1ab\u59da\u946b@#\uff01\",1234567890, \"text\", \"hex\")\nac34ef896f5987c91b35ff6b047d65af04defc02\n<\/code><\/pre>\n<h3>HMACSHA224Encrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aHMAC-SHA224\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>\uff0c<code>key<\/code>\uff0c<code>keyType(text\/base64\/hex)<\/code>\uff0c<code>outputType(hex\/base64\/raw)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u6458\u8981<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod HMACSHA224Encrypt(str As %String, key As %String, keyType As %String = \"text\", outputType As %String = \"hex\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).HMACSHA224Encrypt(\"1ab\u59da\u946b@#\uff01\",1234567890, \"text\", \"hex\")\n2b22b6528c540792db696b8c4a3d30fc35b83e23b832be8527cb5128\n<\/code><\/pre>\n<h3>HMACSHA256Encrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aHMAC-SHA256\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>\uff0c<code>key<\/code>\uff0c<code>keyType(text\/base64\/hex)<\/code>\uff0c<code>outputType(hex\/base64\/raw)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u6458\u8981<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod HMACSHA256Encrypt(str As %String, key As %String, keyType As %String = \"text\", outputType As %String = \"hex\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).HMACSHA256Encrypt(\"1ab\u59da\u946b@#\uff01\",1234567890, \"text\", \"hex\")\n67ec05376fc6cc719216ebe6a3ec6b7f73001b3b8a6f451f454066e58b9a04e7\n<\/code><\/pre>\n<h3>HMACSHA384Encrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aHMAC-SHA384\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>\uff0c<code>key<\/code>\uff0c<code>keyType(text\/base64\/hex)<\/code>\uff0c<code>outputType(hex\/base64\/raw)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u6458\u8981<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod HMACSHA384Encrypt(str As %String, key As %String, keyType As %String = \"text\", outputType As %String = \"hex\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).HMACSHA384Encrypt(\"1ab\u59da\u946b@#\uff01\",1234567890, \"text\", \"hex\")\n96ff10ed4b67429320acfb9fcee811d4754055c2dfe82edddab5da99f9cc7843c46ad2a83e90a80957ad2c465addf283\n<\/code><\/pre>\n<h3>HMACSHA512Encrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aHMAC-SHA512\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>\uff0c<code>key<\/code>\uff0c<code>keyType(text\/base64\/hex)<\/code>\uff0c<code>outputType(hex\/base64\/raw)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u6458\u8981<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod HMACSHA512Encrypt(str As %String, key As %String, keyType As %String = \"text\", outputType As %String = \"hex\") As %String\n<\/code><\/pre>\n<p>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/p>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).HMACSHA512Encrypt(\"1ab\u59da\u946b@#\uff01\",1234567890, \"text\", \"hex\")\n34c28fc5d47df816c546494dee1b4b4ae4a1cd815805bd7f7938a473c75ee8891bb847111afc1fa65a3c8e0c726dd1e676d16be1c849065f767ae780a4d00fba\n<\/code><\/pre>\n<h2>3. AES<\/h2>\n<p>\u6821\u9a8c\u7f51\u7ad9\uff1ahttp:\/\/tool.chacuo.net\/cryptaes<\/p>\n<h3>AESECBZeroPaddingEncrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aAES ECB ZeroPadding \u52a0\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>,<code>key<\/code>,<code>keyType(text\/base64\/hex)<\/code>,<code>outputType(base64\/raw\/hex)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u5bc6\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod AESECBZeroPaddingEncrypt(str As %String, key As %String, keyType As %String = \"text\", outputType As %String = \"base64\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).AESECBZeroPaddingEncrypt(\"1ab\u59da\u946b@#\uff01\",\"J#y9sJesv*512345\",\"text\", \"base64\")\ne7mwJvE9+OgKf\/IHdTthsA==\n<\/code><\/pre>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).AESECBZeroPaddingEncrypt(\"1ab\u59da\u946b@#\uff01\",\"J#y9sJesv*512345\",\"text\", \"hex\")   \n7bb9b026f13df8e80a7ff207753b61b0\n<\/code><\/pre>\n<h3>AESECBZeroPaddingDecrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aAES ECB ZeroPadding \u89e3\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>,<code>key<\/code>,<code>keyType(text\/base64\/hex)<\/code>,<code>outputType(\u517c\u5bb9\u53c2\u6570)<\/code>,<code>cipherType(base64\/raw\/hex, \u4f18\u5148)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u660e\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod AESECBZeroPaddingDecrypt(str As %String, key As %String, keyType As %String = \"text\", outputType As %String = \"base64\", cipherType As %String = \"\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).AESECBZeroPaddingDecrypt(\"e7mwJvE9+OgKf\/IHdTthsA==\",\"J#y9sJesv*512345\",\"text\", \"base64\", \"base64\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).AESECBZeroPaddingDecrypt(\"7bb9b026f13df8e80a7ff207753b61b0\",\"J#y9sJesv*512345\",\"text\",\"hex\", \"hex\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<h3>AESCBCPKCS7PaddingEncrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aAES CBC PKCS7 \u52a0\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>,<code>key<\/code>,<code>iv<\/code>,<code>keyType(text\/base64\/hex)<\/code>,<code>ivType(text\/base64\/hex)<\/code>,<code>outputType(base64\/raw\/hex)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u5bc6\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod AESCBCPKCS7PaddingEncrypt(str As %String, key As %String, iv As %String, keyType As %String = \"text\", ivType As %String = \"text\", outputType As %String = \"base64\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).AESCBCPKCS7PaddingEncrypt(\"1ab\u59da\u946b@#\uff01\", \"J#y9sJesv*512345\", \"J#y9sJesv*512345\",\"text\", \"text\", \"base64\")\n6Y8NmJMsagLOsgErqcYmkw==\n<\/code><\/pre>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).AESCBCPKCS7PaddingEncrypt(\"1ab\u59da\u946b@#\uff01\", \"J#y9sJesv*512345\", \"J#y9sJesv*512345\",\"text\", \"text\", \"hex\")   \ne98f0d98932c6a02ceb2012ba9c62693\n<\/code><\/pre>\n<h3>AESCBCPKCS7PaddingDecrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aAES CBC PKCS7 \u89e3\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>,<code>key<\/code>,<code>iv<\/code>,<code>keyType(text\/base64\/hex)<\/code>,<code>ivType(text\/base64\/hex)<\/code>,<code>outputType(\u517c\u5bb9\u53c2\u6570)<\/code>,<code>cipherType(base64\/raw\/hex, \u4f18\u5148)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u660e\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod AESCBCPKCS7PaddingDecrypt(str As %String, key As %String, iv As %String, keyType As %String = \"text\", ivType As %String = \"text\", outputType As %String = \"base64\", cipherType As %String = \"\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).AESCBCPKCS7PaddingDecrypt(\"e98f0d98932c6a02ceb2012ba9c62693\", \"J#y9sJesv*512345\", \"J#y9sJesv*512345\",\"text\", \"text\", \"hex\", \"hex\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).AESCBCPKCS7PaddingDecrypt(\"6Y8NmJMsagLOsgErqcYmkw==\", \"J#y9sJesv*512345\", \"J#y9sJesv*512345\",\"text\", \"text\", \"base64\", \"base64\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<h3>AESCBCPKCS5PaddingEncrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aAES CBC PKCS5 \u52a0\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>,<code>key<\/code>,<code>iv<\/code>,<code>keyType(text\/base64\/hex)<\/code>,<code>ivType(text\/base64\/hex)<\/code>,<code>outputType(base64\/raw\/hex)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u5bc6\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod AESCBCPKCS5PaddingEncrypt(str As %String, key As %String, iv As %String, keyType As %String = \"text\", ivType As %String = \"text\", outputType As %String = \"base64\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).AESCBCPKCS5PaddingEncrypt(\"1ab\u59da\u946b@#\uff01\", \"J#y9sJesv*512345\", \"J#y9sJesv*512345\",\"text\", \"text\", \"base64\")\n6Y8NmJMsagLOsgErqcYmkw==\n<\/code><\/pre>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).AESCBCPKCS5PaddingEncrypt(\"1ab\u59da\u946b@#\uff01\", \"J#y9sJesv*512345\", \"J#y9sJesv*512345\",\"text\", \"text\", \"hex\")\ne98f0d98932c6a02ceb2012ba9c62693\n<\/code><\/pre>\n<h3>AESCBCPKCS5PaddingDecrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aAES CBC PKCS5 \u89e3\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>,<code>key<\/code>,<code>iv<\/code>,<code>keyType(text\/base64\/hex)<\/code>,<code>ivType(text\/base64\/hex)<\/code>,<code>outputType(\u517c\u5bb9\u53c2\u6570)<\/code>,<code>cipherType(base64\/raw\/hex, \u4f18\u5148)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u660e\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod AESCBCPKCS5PaddingDecrypt(str As %String, key As %String, iv As %String, keyType As %String = \"text\", ivType As %String = \"text\", outputType As %String = \"base64\", cipherType As %String = \"\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).AESCBCPKCS5PaddingDecrypt(\"6Y8NmJMsagLOsgErqcYmkw==\", \"J#y9sJesv*512345\", \"J#y9sJesv*512345\",\"text\", \"text\", \"base64\", \"base64\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).AESCBCPKCS5PaddingDecrypt(\"e98f0d98932c6a02ceb2012ba9c62693\", \"J#y9sJesv*512345\", \"J#y9sJesv*512345\",\"text\", \"text\", \"hex\", \"hex\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<h3>AESECBPKCS5PaddingEncrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aAES ECB PKCS5 \u52a0\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>,<code>key<\/code>,<code>keyType(text\/base64\/hex)<\/code>,<code>outputType(base64\/raw\/hex)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u5bc6\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod AESECBPKCS5PaddingEncrypt(str As %String, key As %String = \"\", keyType As %String = \"text\", outputType As %String = \"base64\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).AESECBPKCS5PaddingEncrypt(\"1ab\u59da\u946b@#\uff01\",\"J#y9sJesv*512345\",\"text\", \"base64\")\nROvjltaCFBS5thrSSqkd+g==\n<\/code><\/pre>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).AESECBPKCS5PaddingEncrypt(\"1ab\u59da\u946b@#\uff01\",\"J#y9sJesv*512345\",\"text\", \"hex\")\n44ebe396d6821414b9b61ad24aa91dfa\n<\/code><\/pre>\n<h3>AESECBPKCS5PaddingDecrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aAES ECB PKCS5 \u89e3\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>,<code>key<\/code>,<code>keyType(text\/base64\/hex)<\/code>,<code>outputType(\u517c\u5bb9\u53c2\u6570)<\/code>,<code>cipherType(base64\/raw\/hex, \u4f18\u5148)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u660e\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod AESECBPKCS5PaddingDecrypt(str As %String, key As %String = \"\", keyType As %String = \"text\", outputType As %String = \"base64\", cipherType As %String = \"\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).AESECBPKCS5PaddingDecrypt(\"ROvjltaCFBS5thrSSqkd+g==\",\"J#y9sJesv*512345\",\"text\", \"base64\", \"base64\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).AESECBPKCS5PaddingDecrypt(\"44ebe396d6821414b9b61ad24aa91dfa\",\"J#y9sJesv*512345\",\"text\", \"hex\", \"hex\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<h3>AESECBPKCS7PaddingEncrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aAES ECB PKCS7 \u52a0\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>,<code>key<\/code>,<code>keyType(text\/base64\/hex)<\/code>,<code>outputType(base64\/raw\/hex)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u5bc6\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod AESECBPKCS7PaddingEncrypt(str As %String, key As %String = \"\", keyType As %String = \"text\", outputType As %String = \"base64\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).AESECBPKCS7PaddingEncrypt(\"1ab\u59da\u946b@#\uff01\",\"J#y9sJesv*512345\",\"text\", \"base64\")\nROvjltaCFBS5thrSSqkd+g==\n<\/code><\/pre>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).AESECBPKCS7PaddingEncrypt(\"1ab\u59da\u946b@#\uff01\",\"J#y9sJesv*512345\",\"text\", \"hex\")\n44ebe396d6821414b9b61ad24aa91dfa\n<\/code><\/pre>\n<h3>AESECBPKCS7PaddingDecrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aAES ECB PKCS7 \u89e3\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>,<code>key<\/code>,<code>keyType(text\/base64\/hex)<\/code>,<code>outputType(\u517c\u5bb9\u53c2\u6570)<\/code>,<code>cipherType(base64\/raw\/hex, \u4f18\u5148)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u660e\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod AESECBPKCS7PaddingDecrypt(str As %String, key As %String = \"\", keyType As %String = \"text\", outputType As %String = \"base64\", cipherType As %String = \"\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).AESECBPKCS7PaddingDecrypt(\"ROvjltaCFBS5thrSSqkd+g==\",\"J#y9sJesv*512345\",\"text\", \"base64\", \"base64\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).AESECBPKCS7PaddingDecrypt(\"44ebe396d6821414b9b61ad24aa91dfa\",\"J#y9sJesv*512345\",\"text\", \"hex\", \"hex\")\n1ab\u59da\u946b@#\uff01\n\n<\/code><\/pre>\n<h3>AESECBPKCS5PaddingEncryptStream<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aAES ECB PKCS5 \u52a0\u5bc6\uff08\u6d41\u8f93\u51fa\uff09\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>,<code>key<\/code>,<code>keyType(text\/base64\/hex)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a<code>%Stream.GlobalBinary<\/code><\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod AESECBPKCS5PaddingEncryptStream(str As %String, key As %String = \"\", keyType As %String = \"text\") As %Stream.GlobalBinary\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).AESECBPKCS5PaddingEncryptStream(\"1ab\u59da\u946b@#\uff01\",\"J#y9sJesv*512345\").Read()\nROvjltaCFBS5thrSSqkd+g==\n<\/code><\/pre>\n<h3>AESECBPKCS5PaddingDecryptStream<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aAES ECB PKCS5 \u89e3\u5bc6\uff08\u6d41\u8f93\u5165\uff09\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>stream<\/code>,<code>key<\/code>,<code>keyType(text\/base64\/hex)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u660e\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod AESECBPKCS5PaddingDecryptStream(stream As %Stream.GlobalBinary, key As %String = \"\", keyType As %String = \"text\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).AESECBPKCS5PaddingDecryptStream(##class(Util.EncryptionUtils).AESECBPKCS5PaddingEncryptStream(\"1ab\u59da\u946b@#\uff01\",\"J#y9sJesv*512345\"),\"J#y9sJesv*512345\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<h2>4. SM3<\/h2>\n<p>\u6821\u9a8c\u7f51\u7ad9\uff1ahttps:\/\/tool.hiofd.com\/sm3-online\/<\/p>\n<h3>SM3Encrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aSM3 \u6458\u8981\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>\uff0c<code>outputType(hex\/base64\/raw)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u6458\u8981<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod SM3Encrypt(str As %String, outputType As %String = \"hex\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).SM3Encrypt(\"1ab\u59da\u946b@#\uff01\",\"hex\")\na13f3300653d28a97d41b66540a4546ffe0e708fcc9b38de3be1d938b9fa85ff\n<\/code><\/pre>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).SM3Encrypt(\"1ab\u59da\u946b@#\uff01\",\"base64\")\noT8zAGU9KKl9QbZlQKRUb\/4OcI\/MmzjeO+HZOLn6hf8=\n<\/code><\/pre>\n<h3>HMACSM3Encrypt<\/h3>\n<p>\u6821\u9a8c\u7f51\u7ad9\uff1ahttps:\/\/www.easydebug.net\/encryption-sm<\/p>\n<ul>\n<li>\u63cf\u8ff0\uff1aHMAC-SM3\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>,<code>key<\/code>,<code>keyType(text\/base64\/hex)<\/code>,<code>outputType(hex\/base64\/raw)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u6458\u8981<\/li>\n<li>\u8bf4\u660e\uff1a\u7b2c\u4e09\u4e2a\u53c2\u6570\u662f <strong><code>keyType<\/code><\/strong>\uff08\u5bc6\u94a5\u5982\u4f55\u89e3\u7801\uff09\uff0c\u4e0d\u662f\u8f93\u51fa\u683c\u5f0f\u3002\u4e0b\u4f8b\u7b2c\u4e09\u53c2\u6570\u4e3a <strong><code>hex<\/code><\/strong>\uff0c\u8868\u793a\u628a\u5bc6\u94a5\u4e32 <code>\"1234567890\"<\/code> \u6309\u5341\u516d\u8fdb\u5236\u89e3\u7801\u4e3a\u5b57\u8282\u518d HMAC\uff1b\u82e5\u5bc6\u94a5\u662f\u65e5\u5e38\u5b57\u7b26\u4e32\uff0c\u5e94\u4f7f\u7528 <strong><code>text<\/code><\/strong>\uff0c\u6458\u8981\u4f1a\u4e0e\u4e0b\u4f8b\u4e0d\u540c\u3002<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod HMACSM3Encrypt(str As %String, key As %String, keyType As %String = \"text\", outputType As %String = \"hex\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).HMACSM3Encrypt(\"1ab\u59da\u946b@#\uff01\",\"1234567890\",\"hex\", \"hex\")\n8f7440535c3c8954221f4bed3d5fbfb8cfed04be223d1b414a9eaaa0ec03587e\n<\/code><\/pre>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).HMACSM3Encrypt(\"1ab\u59da\u946b@#\uff01\",1234567890,\"hex\", \"base64\")\nj3RAU1w8iVQiH0vtPV+\/uM\/tBL4iPRtBSp6qoOwDWH4=\n<\/code><\/pre>\n<h2>5. SM4<\/h2>\n<p>\u6821\u9a8c\u7f51\u7ad9\uff1ahttps:\/\/tool.hiofd.com\/sm4-encrypt-online\/<\/p>\n<h3>SM4Encrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aSM4 \u52a0\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>,<code>key<\/code>,<code>retType<\/code>,<code>keyType<\/code>,<code>padding<\/code>\uff0c<code>mode<\/code>,<code>iv<\/code>\uff08\u5404\u53c2\u6570\u53d6\u503c\u4e0e\u7ec4\u5408\u89c1\u6587\u6863\u5f00\u5934 <strong>\u300c\u53c2\u6570\u7ea6\u5b9a\u4e0e\u586b\u5199\u8bf4\u660e\u300d\u2192 5. SM4<\/strong>\uff09<\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u5bc6\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod SM4Encrypt(str As %String, key As %String, retType As %String = \"BASE64\", keyType As %String = \"TEXT\", padding = \"PKCS7\", mode As %String = \"ECB\", iv As %String = \"\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<p>SM4 &#8211; ECB &#8211; PKCS7 \u5bc6\u94a5\u7c7b\u578b\u4e3aHEX\u8f93\u51fa\u7ed3\u679c\u4e3aHEX<\/p>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).SM4Encrypt(\"1ab\u59da\u946b@#\uff01\",\"975C7238C3824FB0975C7238C3824FB0\",\"Hex\",\"HEX\",\"PKCS7\",\"ECB\")\n2D123303571BA4C5A15A1692EDB13783\n<\/code><\/pre>\n<p>SM4 &#8211; ECB &#8211; PKCS7 \u5bc6\u94a5\u7c7b\u578b\u4e3aHEX\u8f93\u51fa\u7ed3\u679c\u4e3aBASE64<\/p>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).SM4Encrypt(\"1ab\u59da\u946b@#\uff01\",\"975C7238C3824FB0975C7238C3824FB0\",\"BASE64\",\"HEX\",\"PKCS7\",\"ECB\")\nLRIzA1cbpMWhWhaS7bE3gw==\n<\/code><\/pre>\n<p>SM4 &#8211; ECB &#8211; PKCS7 \u5bc6\u94a5\u7c7b\u578b\u4e3aTEXT\u8f93\u51fa\u7ed3\u679c\u4e3aHEX<\/p>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).SM4Encrypt(\"1ab\u59da\u946b@#\uff01\",\"975C7238C3824FB0\",\"HEX\",\"TEXT\",\"PKCS7\",\"ECB\")\n7AD4159325EB143C2E7338CD42514EA3\n<\/code><\/pre>\n<p>SM4 &#8211; ECB &#8211; PKCS7 \u5bc6\u94a5\u7c7b\u578b\u4e3aTEXT\u8f93\u51fa\u7ed3\u679c\u4e3aBASE64<\/p>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).SM4Encrypt(\"1ab\u59da\u946b@#\uff01\",\"975C7238C3824FB0\",\"base64\",\"TEXT\",\"PKCS7\",\"ECB\")\netQVkyXrFDwuczjNQlFOow==\n<\/code><\/pre>\n<p>SM4 &#8211; ECB &#8211; PKCS7 \u5bc6\u94a5\u7c7b\u578b\u4e3aBASE64\u8f93\u51fa\u7ed3\u679c\u4e3aBASE64<\/p>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).SM4Encrypt(\"1ab\u59da\u946b@#\uff01\",\"TvaBgrhE46sft3nZlfe7xw==\",\"base64\",\"base64\",\"PKCS7\",\"ECB\")\nd9cw5sCuUtZLZSD60y9bjw==\n<\/code><\/pre>\n<p>SM4 &#8211; ECB &#8211; ZERO \u5bc6\u94a5\u7c7b\u578b\u4e3aBASE64\u8f93\u51fa\u7ed3\u679c\u4e3aBASE64<\/p>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).SM4Encrypt(\"1ab\u59da\u946b@#\uff01\",\"Rl+LAwAmOfgJjzcfo8hXfw==\",\"BASE64\",\"BASE64\",\"ZERO\",\"ECB\")\nzu12rx3u213lw3GNaGvJBw==\n<\/code><\/pre>\n<p>SM4 &#8211; CBC &#8211; PKCS7 \u5bc6\u94a5\u7c7b\u578b\u4e3aTEXT IV \u7c7b\u578b\u4e3a TEXT \u8f93\u51fa\u7ed3\u679c\u4e3aHEX<\/p>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).SM4Encrypt(\"1ab\u59da\u946b@#\uff01\",\"975C7238C3824FB0\",\"HEX\",\"TEXT\",\"PKCS7\",\"CBC\",\"975C7238C3824FB0\")\nACBC8301E0964705A55EA3E077B8EC8A\n<\/code><\/pre>\n<h3>SM4Decrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aSM4 \u89e3\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code>\uff08\u5bc6\u6587\uff09,<code>key<\/code>,<code>textType<\/code>\uff08\u5bc6\u6587\u7f16\u7801\uff09,<code>keyType<\/code>,<code>padding<\/code>,<code>mode<\/code>,<code>iv<\/code>\uff08\u540c\u4e0a\u8282 SM4 \u8868\uff1b<code>textType<\/code> \u5bf9\u5e94\u52a0\u5bc6\u4fa7 <code>retType<\/code>\uff09<\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u660e\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod SM4Decrypt(str As %String, key As %String, textType As %String = \"BASE64\", keyType As %String = \"TEXT\", padding = \"PKCS7\", mode As %String = \"ECB\", iv As %String = \"\") As %String\n\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<p>SM4 &#8211; ECB &#8211; PKCS7 \u5bc6\u94a5\u7c7b\u578b\u4e3aHEX\u5bc6\u6587\u4e3aHEX<\/p>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).SM4Decrypt(\"2D123303571BA4C5A15A1692EDB13783\", \"975C7238C3824FB0975C7238C3824FB0\",\"HEX\",\"HEX\",\"PKCS7\",\"ECB\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<p>SM4 &#8211; ECB &#8211; PKCS7 \u5bc6\u94a5\u7c7b\u578b\u4e3aTEXT\u5bc6\u6587\u4e3aHEX<\/p>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).SM4Decrypt(\"7AD4159325EB143C2E7338CD42514EA3\",\"975C7238C3824FB0\",\"HEX\",\"TEXT\",\"PKCS7\",\"ECB\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<p>SM4 &#8211; ECB &#8211; PKCS7 \u5bc6\u94a5\u7c7b\u578b\u4e3aBASE64\u5bc6\u6587\u4e3aBASE64<\/p>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).SM4Decrypt(\"d9cw5sCuUtZLZSD60y9bjw==\",\"TvaBgrhE46sft3nZlfe7xw==\",\"base64\",\"base64\",\"PKCS7\",\"ECB\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<p>SM4 &#8211; ECB &#8211; ZERO \u5bc6\u94a5\u7c7b\u578b\u4e3aBASE64\u5bc6\u6587\u4e3aBASE64<\/p>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).SM4Decrypt(\"zu12rx3u213lw3GNaGvJBw==\",\"Rl+LAwAmOfgJjzcfo8hXfw==\",\"BASE64\",\"BASE64\",\"ZERO\",\"ECB\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<p>SM4 &#8211; CBC &#8211; PKCS7 \u5bc6\u94a5\u7c7b\u578b\u4e3aTEXT IV \u7c7b\u578b\u4e3a TEXT \u5bc6\u6587\u4e3aHEX<\/p>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).SM4Decrypt(\"ACBC8301E0964705A55EA3E077B8EC8A\",\"975C7238C3824FB0\",\"HEX\",\"TEXT\",\"PKCS7\",\"CBC\",\"975C7238C3824FB0\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<h2>6. RSA<\/h2>\n<h3>RSAEncrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aRSA \u516c\u94a5\u8bc1\u4e66\u52a0\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>plainText<\/code>,<code>certPath<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u5bc6\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod RSAEncrypt(plainText As %String, certPath As %String) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<code>w ##class(Util.EncryptionUtils).RSAEncrypt(\"\u59da\u946b\", \"E:\\m\\key\\public-key.pem\")<\/code><\/li>\n<\/ul>\n<h3>RSADecrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aRSA \u79c1\u94a5\u89e3\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>cipherText<\/code>,<code>privatePath<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u660e\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod RSADecrypt(cipherText As %String, privatePath As %String) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<code>w ##class(Util.EncryptionUtils).RSADecrypt(\"skpyEtXjiLyY8noaW22Kh5udr\/7GvnMTUj\/4U3mLo9CK4OP8wrU86jfKSVPeJIH3rGm6keyaHGwE8S4GFbXzbFK0E4RlAm\/l0smsEyBwiPTWfsKNYVIfGb+ptFMYGkjuTmaNbt7Mvq14B7HEjcYvrNbw\/5LfeKdXrqnc\/TRWNws=\", \"E:\\m\\key\\private-key.pem\")<\/code><\/li>\n<\/ul>\n<h2>7. DES<\/h2>\n<h3>DESEncrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aDES\u52a0\u5bc6<\/li>\n<li>\u53c2\u6570\uff1a<code>plain - \u660e\u6587,key - \u5bc6\u94a5,keyType - \u5bc6\u94a5\u7c7b\u578b(hex,base64,text) - Base64\u4e32,mode - (ECB,CBC),padding - \u586b\u5145\u7c7b\u578b(PKCS7,PKCS5,ZERO) outputFormat - \u7ed3\u679c(hex,base64) , iv - CBC\u4f7f\u7528\uff0civType - (hex,base64,text)<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u5bc6\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">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\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.EncryptionUtils).DESEncrypt(\"1ab\u59da\u946b@#\uff01\",\"1234567890\",\"text   \",\"ECB\",\"PKCS7\",\"hex\")\n2afa3ebe6f6949c351965ac257c2cc90\n<\/code><\/pre>\n<h3>DESDecrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aDES\u89e3\u5bc6<\/li>\n<li>\u53c2\u6570\uff1a<code>cipher - \u5bc6\u6587,key - \u5bc6\u94a5,keyType - \u5bc6\u94a5\u7c7b\u578b(hex,base64,text) - Base64\u4e32,mode - (ECB,CBC),padding - \u586b\u5145\u7c7b\u578b(PKCS7,PKCS5,ZERO) outputFormat - \u7ed3\u679c(hex,base64) , iv - CBC\u4f7f\u7528\uff0civType - (hex,base64,text<\/code>)<\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u660e\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">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\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.EncryptionUtils).DESDecrypt(\"2afa3ebe6f6949c351965ac257c2cc90\",\"1234567890\",\"text\",\"ECB\",\"PKCS7\",\"hex\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<h2>8. 3DES<\/h2>\n<h3>3DESEncrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1a3DES\u52a0\u5bc6<\/li>\n<li>\u53c2\u6570\uff1a<code>plain - \u660e\u6587,key - \u5bc6\u94a5,keyType - \u5bc6\u94a5\u7c7b\u578b(hex,base64,text) - Base64\u4e32,mode - (ECB,CBC),padding - \u586b\u5145\u7c7b\u578b(PKCS7,PKCS5,ZERO) outputFormat - \u7ed3\u679c(hex,base64) , iv - CBC\u4f7f\u7528\uff0civType - (hex,base64,text<\/code>)<\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u5bc6\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">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\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.EncryptionUtils).DesedeEncrypt(\"1ab\u59da\u946b@#\uff01\",\"12345678123456   78\",\"text\",\"ECB\",\"PKCS7\",\"hex\")\n2afa3ebe6f6949c351965ac257c2cc90\n<\/code><\/pre>\n<h3>3DESDecrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1a3DES\u89e3\u5bc6<\/li>\n<li>\u53c2\u6570\uff1a<code>cipher - \u5bc6\u6587,key - \u5bc6\u94a5,keyType - \u5bc6\u94a5\u7c7b\u578b(hex,base64,text) - Base64\u4e32,mode - (ECB,CBC),padding - \u586b\u5145\u7c7b\u578b(PKCS7,PKCS5,ZERO) outputFormat - \u7ed3\u679c(hex,base64) , iv - CBC\u4f7f\u7528\uff0civType - (hex,base64,text<\/code>)<\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u660e\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">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\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.EncryptionUtils).DesedeDecrypt(\"2afa3ebe6f6949c351965ac257c2cc90\",\"1234567812345678\",\"text\",\"ECB\",\"PKCS7\",\"hex\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<h2>9. \u5947\u5076\u52a0\u5bc6<\/h2>\n<h3>OddEvenEncrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1a\u5947\u5076\u4f4d\u4ea4\u6362\u52a0\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>plainText<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u5bc6\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod OddEvenEncrypt(plainText As %String) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).OddEvenEncrypt(\"ab2\")\n900789500\n<\/code><\/pre>\n<h3>OddEvenDecrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1a\u5947\u5076\u4f4d\u4ea4\u6362\u89e3\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>cipherText<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u660e\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod OddEvenDecrypt(cipherText As %String) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">DHC-APP&gt;w ##class(Util.EncryptionUtils).OddEvenDecrypt(\"900789501091\")\nab2w\n<\/code><\/pre>\n<h1>JAVA \u52a0\u5bc6\u670d\u52a1 &#8211; \u6807\u51c6\u52a0\u5bc6<\/h1>\n<h2>1. SM2<\/h2>\n<h3>JavaSm2Sign<\/h3>\n<p>\u6821\u9a8c\u7f51\u7ad9\uff1ahttps:\/\/tool.hiofd.com\/sm2-sign-verify\/<\/p>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava SM2 \u7b7e\u540d\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>content<\/code>,<code>privateKey<\/code>,<code>isResultHex<\/code>,<code>isKeyHex<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u7b7e\u540d<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaSm2Sign(content As %String, privateKey As %String, isResultHex As %String = 1, isKeyHex As %String = 1) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">w ##class(Util.EncryptionUtils).JavaSm2Sign(\"1ab\u59da\u946b@#\uff01\",\"a99d6978656   355b570a19cc707b2ea68ed033c3fa436df9c0a15e84a06069c7b\")\n304402207627bfb7e7bdef7de087c0a64fd8e179c10df18548294d72fdf089c8e85e42740220724ea448f5242a79f4c127fc6a153372f824f275822f0d62564e3cf8c0006775\n<\/code><\/pre>\n<h3>JavaSm2Verify<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava SM2 \u9a8c\u7b7e\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>content<\/code>,<code>publicKey<\/code>,<code>sign<\/code>,<code>isResultHex<\/code>,<code>isKeyHex<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u5e03\u5c14\u503c<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaSm2Verify(content As %String, publicKey As %String, sign As %String, isResultHex As %String = 1, isKeyHex As %String = 1) As %Boolean\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">w ##class(Util.EncryptionUtils).JavaSm2Verify(\"1ab\u59da\u946b@#\uff01\",\"04b674b6e   dfd08f754410b21cc3c8b522f318a1f1b27403bc63a290b7e1790d03d967d06c46e69357793967ff42a34d77ed5d7bb40d31b7f5ab0b0840017cff114\",\"3044022016fb0f645bbc0ba9fbeacb3dfb7ba20a7c629e64183149d8a43b6ece471faba802202dcfd47e72fc45011eb280f328312f78aaad48d499e648fc8ba7b48844f0a236\")\n1\n<\/code><\/pre>\n<h3>JavaSm2Encrypt<\/h3>\n<p>\u6821\u9a8c\u7f51\u7ad9\uff1ahttps:\/\/tool.hiofd.com\/sm2-encrypt-online\/<\/p>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava SM2 \u516c\u94a5\u52a0\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>content<\/code>,<code>publicKey<\/code>,<code>mode<\/code>,<code>isResultHex<\/code>,<code>isKeyHex<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u5bc6\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaSm2Encrypt(content As %String, publicKey As %String, mode As %String = \"C1C3C2\", isResultHex As %String = 1, isKeyHex As %String = 1) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.EncryptionUtils).JavaSm2Encrypt(\"1ab\u59da\u946b@#\uff01\",\"04b674b6   edfd08f754410b21cc3c8b522f318a1f1b27403bc63a290b7e1790d03d967d06c46e69357793967ff42a34d77ed5d7bb40d31b7f5ab0b0840017cff114\",\"C1C3C2\",1,1)\n04f988b4bd8bbfc9691b175a246fbbb87d36ff5d23519a9944da822e508d5891f38d0529686e664fe263d46ff28ce7fcf771f3b5432d4ca50315a428c48bc37cf37bcbc8bf4c6a6e83911c8b9f09d8b7a48e2540004df102cfb7b9ddfea788f96c0cd5902e3c3761a8429426c87e0e\n<\/code><\/pre>\n<h3>JavaSm2Encrypt4PKCS8<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava SM2 PKCS8 \u516c\u94a5\u52a0\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>content<\/code>,<code>publicKey<\/code>,<code>mode<\/code>,<code>isResultHex<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u5bc6\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaSm2Encrypt4PKCS8(content As %String, publicKey As %String, mode As %String = \"C1C3C2\", isResultHex As %String = 0) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.Impl.EncryptionUtils).JavaSm2Encrypt4PKCS8(\"1ab\u59da\u946b@#\uff01\",\"LS   0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQk16Q0I3QVlIS29aSXpqMENBVENCNEFJQkFUQXNCZ2NxaGtqT1BRRUJBaUVBLy8vLy92Ly8vLy8vLy8vLwovLy8vLy8vLy8vOEFBQUFBLy8vLy8vLy8vLzh3UkFRZy8vLy8vdi8vLy8vLy8vLy8vLy8vLy8vLy8vOEFBQUFBCi8vLy8vLy8vLy93RUlDanArcDZkbjE0MFRWcWVTODlsQ2Fmemw0bjFGYXVQa3QyOHZVRk5sQTZUQkVFRU1zU3UKTEI4WmdSbGZtUVJHYWpuSmxJL2pDNy95Wmd2aGNWcEZpVE5NZE1lOE56YWk5UFozbkZtOXp1TnJhU0ZUMEttSApmTVlxUjBBQzN6TGxJVG53b0FJaEFQLy8vLzcvLy8vLy8vLy8vLy8vLy85eUE5OXJJY1lGSzFPNzlBazUxVUVqCkFnRUJBMElBQkt2NnhzTkN2QUNteGd1SGREOWx1WVc1Q25RbFVmazcyM1JxYjRMNUpua21rTzJNQTNTSmNwNm8KMS9FRzM4ZWk5S2duRXFiV2lTcktHODJYbExTTi9KVT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg\",\"C1C2C3\",0)\nBPXhrYOz0DjkEc1T9eikPiWT1hHSjYZl16kuQtKddGFOVNicDNVbvdzqa9sYePXg6UKHV9Y8e220oz\/aK0indAggQYZ0QiyovLdQIUN4SfxjUIgc78zTfIG76jL2bCO6J3FdXsOhS\/lL7SG1BuaG\n<\/code><\/pre>\n<h3>JavaSm2Decrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava SM2 \u79c1\u94a5\u89e3\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>cipherText<\/code>,<code>privateKey<\/code>,<code>mode<\/code>,<code>isResultHex<\/code>,<code>isKeyHex<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u660e\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaSm2Decrypt(cipherText As %String, privateKey As %String, mode As %String = \"C1C3C2\", isResultHex As %String = 1, isKeyHex As %String = 1) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">w ##class(Util.Impl.EncryptionUtils).JavaSm2Decrypt(\"042d2e5e82795458f4599a377bd08b758de09431d1352c2ff461d5c6cac037c75b4afa2b875ed028ff762a2b901065d617eef788149cd6324cf5089c674d7c4595dededad2603cdfac80bf17ff4d03e8ce50f0ee5334282976e8481c2476a6369252657f3cfde02b3b43b34e8ccff9\",\"a99d6978656355b570a19cc707b2ea68ed033c3fa436df9c0a15e84a06069c7b\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<h2>2. SM3<\/h2>\n<h3>JavaSm3Encrypt<\/h3>\n<p>\u6821\u9a8c\u7f51\u7ad9\uff1ahttps:\/\/tool.hiofd.com\/sm3-online\/<\/p>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava SM3 \u6458\u8981\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>plainText<\/code>,<code>isHexOutput<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u6458\u8981<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaSm3Encrypt(plainText As %String, isHexOutput As %Boolean = 1) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.Impl.EncryptionUtils).JavaSm3Encrypt(\"Hello World\")\n77015816143ee627f4fa410b6dad2bdb9fcbdf1e061a452a686b8711a484c5d7\n<\/code><\/pre>\n<h3>JavaSm3Hmac<\/h3>\n<p>\u6821\u9a8c\u7f51\u7ad9\uff1ahttps:\/\/www.easydebug.net\/encryption-sm<\/p>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava SM3-HMAC\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>data<\/code>,<code>key<\/code>,<code>isHexOutput<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u6458\u8981<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaSm3Hmac(data As %String, key As %String, isHexOutput As %Boolean = 1) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.Impl.EncryptionUtils).JavaSm3Hmac(\"Hello World\", \"mySecretKey123456\")\nMI\/1ELLsN8gJbGFnZLjIGM6ergxswdKCDyhT7ZWyY\/g=\n<\/code><\/pre>\n<h3>JavaSm3VerifyHmac<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava SM3-HMAC \u9a8c\u8bc1\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>data<\/code>,<code>key<\/code>,<code>expectedHmac<\/code>,<code>isHexOutput<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u9a8c\u8bc1\u7ed3\u679c<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaSm3VerifyHmac(data As %String, key As %String, expectedHmac As %String, isHexOutput As %Boolean = 1) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.Impl.EncryptionUtils).JavaSm3VerifyHmac(\"Hello World\", \"mySecretKey123456\",\"MI\/1ELLsN8gJbGFnZLjIGM6ergxswdKCDyhT7ZWyY\/g=\")\ntrue\n<\/code><\/pre>\n<h2>3. SM4<\/h2>\n<p>\u6821\u9a8c\u7f51\u7ad9\uff1ahttps:\/\/tool.hiofd.com\/sm4-encrypt-online\/<\/p>\n<h3>JavaSm4CbcZeroEncrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava SM4 CBC Zero \u52a0\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>plainText<\/code>,<code>keyStr<\/code>,<code>ivStr<\/code>,<code>keyType<\/code>,<code>outputFormat<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u5bc6\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaSm4CbcZeroEncrypt(plainText As %String, keyStr As %String, ivStr As %String, keyType As %String = \"text\", outputFormat As %String = \"hex\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.Impl.EncryptionUtils).JavaSm4CbcZeroEncrypt(\"1ab\u59da\u946b@#\uff01\",\"b   e82c53a6c452f2e\",\"gatherdataeworld\")\n32e4c73ebdfed40a6ffd6f8fc11d86d7\n<\/code><\/pre>\n<h3>JavaSm4CbcZeroDecrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava SM4 CBC Zero \u89e3\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>cipherText<\/code>,<code>keyStr<\/code>,<code>ivStr<\/code>,<code>keyType<\/code>,<code>outputFormat<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u660e\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaSm4CbcZeroDecrypt(cipherText As %String, keyStr As %String, ivStr As %String, keyType As %String = \"text\", outputFormat As %String = \"hex\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.Impl.EncryptionUtils).JavaSm4CbcZeroDecrypt(\"32e4c73ebdfed40a6ffd6f8fc11d86d7\",\"be82c53a6c452f2e\",\"gatherdataeworld\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<h3>JavaSm4EcbPkcs5Encrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava SM4 ECB PKCS5 \u52a0\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>plainText<\/code>,<code>keyStr<\/code>,<code>keyType<\/code>,<code>outputFormat<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u5bc6\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaSm4EcbPkcs5Encrypt(plainText As %String, keyStr As %String, keyType As %String = \"text\", outputFormat As %String = \"hex\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.EncryptionUtils).JavaSm4EcbPkcs5Encrypt(\"1ab\u59da\u946b@#\uff01\",\"975C7   238C3824FB0\")\n7ad4159325eb143c2e7338cd42514ea3\n<\/code><\/pre>\n<h3>JavaSm4EcbPkcs5Decrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava SM4 ECB PKCS5 \u89e3\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>cipherText<\/code>,<code>keyStr<\/code>,<code>keyType<\/code>,<code>outputFormat<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u660e\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaSm4EcbPkcs5Decrypt(cipherText As %String, keyStr As %String, keyType As %String = \"text\", outputFormat As %String = \"hex\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.EncryptionUtils).JavaSm4EcbPkcs5Decrypt(\"7ad4159325eb143c2e7338cd42514ea3\",\"975C7238C3824FB0\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<h3>JavaSm4EcbPkcs7Encrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava SM4 ECB PKCS7 \u52a0\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>plainText<\/code>,<code>keyStr<\/code>,<code>keyType<\/code>,<code>outputFormat<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u5bc6\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaSm4EcbPkcs7Encrypt(plainText As %String, keyStr As %String, keyType As %String = \"text\", outputFormat As %String = \"hex\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.EncryptionUtils).JavaSm4EcbPkcs7Encrypt(\"1ab\u59da\u946b@#\uff01\",\"975C7   238C3824FB0\")\n7ad4159325eb143c2e7338cd42514ea3\n<\/code><\/pre>\n<h3>JavaSm4EcbPkcs7Decrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava SM4 ECB PKCS7 \u89e3\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>cipherText<\/code>,<code>keyStr<\/code>,<code>keyType<\/code>,<code>outputFormat<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u660e\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaSm4EcbPkc7Decrypt(cipherText As %String, keyStr As %String, keyType As %String = \"text\", outputFormat As %String = \"hex\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.EncryptionUtils).JavaSm4EcbPkcs7Decrypt(\"7ad4159325eb143c2e7338cd42514ea3\",\"975C7238C3824FB0\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<h2>4. RSA<\/h2>\n<h3>JavaRsaEncryptByPublicKey<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava RSA \u516c\u94a5\u52a0\u5bc6\uff08\u652f\u6301 pemFile \/ encoding\uff09\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>content<\/code>,<code>publicKey<\/code>,<code>keyType<\/code>,<code>outputFormat<\/code>,<code>encoding<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u5bc6\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaRsaEncryptByPublicKey(content As %String, publicKey As %String, keyType As %String = \"base64\", outputFormat As %String = \"base64\", encoding As %Integer = 2) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.EncryptionUtils).JavaRsaEncryptByPublicKey(\"1ab\u59da\u946b@#\uff01\",\"MI   IBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhZuxSMZ2WkQBkJL183S3lcefQBL1Yor\/fS0kQqllcOWSUTPGa+MAdnUtA5K+QheYNURMKxJfRout6qUHijXybnh4g4LEtDhOyn7YppEd9EtzeorYdUCplYFgEN+MEAV9gqH9xp0fhHet7w8aAfVuBU2VVIZ3dKeaSZepSbmXaSlEMQ3kE1+mdVv63SW1PyAS7m8v0rKtP7yu97227SK9M2djjqu8MYNFMHNrxv2VWOklrsllUzV4\/jWxa9bQqH91\/ws9kmOKYdMSKpzhKcnAa6LJroHHZbRXPIPn+zcPunRzoPg1sAdmRJ+dgZiB6dgVwdgMZCYmsc3+LcKYKjyXNwIDAQAB\")\nFS\/WyGnOeEDaiYvFEIuXVtlRPpK5pF56SjOnG37Gqu8OxvH9n48knCmZ6hMMy43GNymBhUhz8lK\/+SQSIgE1QNDBVdyGlWA4OJ5xeJFqyvZ4cdMgZDUpZrUKw0EvsRAu9sJ5Gh1g516WzSHzGFXh2FauXFAjrlUlO7yD4uG84ACaAel4Tb0pm6BgsxNGNI88InjN1nq5r+Dyw4Rt4CpcuNgfcobni9oYlPSfiaV5qHrQtr\/tIHTRtU0opgon\/9wRK8H027F3ksWnH9d8q7H+sJMFkFixQCakWkCsaGmjustZW9TnbwcBVS8\/vn0ijdDxYIlYpYMT0VosvhPFncBmow==\n<\/code><\/pre>\n<h3>JavaRsaDecryptByPrivateKey<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava RSA \u79c1\u94a5\u89e3\u5bc6\uff08\u652f\u6301 pemFile \/ encoding\uff09\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>content<\/code>,<code>privateKey<\/code>,<code>keyType<\/code>,<code>outputFormat<\/code>,<code>encoding<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u660e\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaRsaDecryptByPrivateKey(content As %String, privateKey As %String, keyType As %String = \"base64\", outputFormat As %String = \"base64\", encoding As %Integer = 2) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;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==\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<h3>JavaSignByha256WithRsa<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava SHA256withRSA \u7b7e\u540d\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>content<\/code>,<code>privateKey<\/code>,<code>keyType<\/code>,<code>outputFormat<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u7b7e\u540d<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaSignBySha256WithRsa(content As %String, privateKey As %String, keyType As %String = \"base64\", outputFormat As %String = \"base64\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.EncryptionUtils).JavaSignBySha256WithRsa(\"appid=&amp;nonce=fc8d5a2d-be00-4e9f-852d-1a5935246e0c\u00d7tamp=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==\")\nK54e8FNcXKlJgOHwnOT5B5ee4p8R6R91gBLanJsh+REgiB3FaQzV9c8wd+P\/4aowfQ\/L6l+lXZnO6I7AEA51+JjpMQzSvV8Z+Q00Zn1iohx6v2+hLhe16CRyPg6pDmTwNduadskUubqgKBHqBuGcZ8+lAH+9LnSPH\/+YAa6adSA5EFbfehp06Jc3\/uIvNVXmwqH+3nvhaJuSeyW0Z4SvPXEtYkL+J3Q5\/sB8WlUoD3N56Xwv\/gsHLTNhL9SzMpFdHWnss38Qv2sajUuUojnkFOsdO9y1lVtsuRsKV7blRX8dhKWYOhMF\/U9wXYPY7Yc0sR7L4iT4K62tbaggGhElmg==\n<\/code><\/pre>\n<h3>JavaSignBySha1WithRsa<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava SHA1withRSA \u7b7e\u540d\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>content<\/code>,<code>privateKey<\/code>,<code>keyType<\/code>,<code>outputFormat<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u7b7e\u540d<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaSignBySha1WithRsa(content As %String, privateKey As %String, keyType As %String = \"base64\", outputFormat As %String = \"hex\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.EncryptionUtils).JavaSignBySha1WithRsa(\"1ab\u59da\u946b@#\uff01\",\"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\")\n7f1fecca1b737f97db39166984b6f31fdf9d83cb29728c29adc7a56ef377a82e4e17c3d00c15affcbd4edd0d9f3935da26741b8fdc63792c013c7f8f293e690c16bf279600e35eb72004dc06950b550a786e5438d61011c6ccfecd076ac53205ff19fbdcf3bb773201263face5c01329c274f4274a222346a93479ccdedeca9fcb1827471f98c0b7ea111bcae907f45d08a0773a941ac14f86f85e41a3765045307c5291a93abb97b50780d26b33ff078698fe39b09805c5e561cafc2c952efed921f01814acde3fcac3e654a1ec35f7c42ac5320f47bc24e7847349373a7a90be03411617d756648ad6f2f265eeb51d34adb8e7a69b3395b1fba2ba2ad64ff5\n<\/code><\/pre>\n<h3>JavaVerifyBySha1WithRsa<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava SHA1withRSA \u9a8c\u7b7e\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>content<\/code>,<code>sign<\/code>,<code>publicKey<\/code>,<code>keyType<\/code>,<code>outputFormat<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u9a8c\u8bc1\u7ed3\u679c<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaVerifyBySha1WithRsa(content As %String, sign As %String, publicKey As %String, keyType As %String = \"base64\", outputFormat As %String = \"hex\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.EncryptionUtils).JavaVerifyBySha1WithRsa(\"1ab\u59da\u946b@#\uff01\",\"7f1f   ecca1b737f97db39166984b6f31fdf9d83cb29728c29adc7a56ef377a82e4e17c3d00c15affcbd4edd0d9f3935da26741b8fdc63792c013c7f8f293e690c16bf279600e35eb72004dc06950b550a786e5438d61011c6ccfecd076ac53205ff19fbdcf3bb773201263face5c01329c274f4274a222346a93479ccdedeca9fcb1827471f98c0b7ea111bcae907f45d08a0773a941ac14f86f85e41a3765045307c5291a93abb97b50780d26b33ff078698fe39b09805c5e561cafc2c952efed921f01814acde3fcac3e654a1ec35f7c42ac5320f47bc24e7847349373a7a90be03411617d756648ad6f2f265eeb51d34adb8e7a69b3395b1fba2ba2ad64ff5\",\"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsaERDncBd1Au43GmZWLexp8C8hiNPcWbINcemwmEdn3NPzSOlwO+nU2CgsHLkTkkTqB7ycmdY3hKTGc6uofhhjtIFuK5TJ0o6MpltiF1u8MFi6h0y6YwuSqmIkMHLwFOHrpgj1WtzAKRXa5voYL2Xw60ZbJZXUgJWdIGFyRSaWh4PU3Tz\/ow9ZiMidff+2FsnFqf3Jz87d7SkGS8ooQ1XHv1HhvOFlfTl64c+keUjH5grtlYIISg493RaSvBsyhVyrwTvfoL30Dp3uvpKbNwn7we2UykSKaKiANlS4WDmAVl6CCaFbZszRwhmomhjgexcyQbDdVebFYht47kXrtnwQIDAQAB\")\n1\n<\/code><\/pre>\n<h2>5. DES<\/h2>\n<h3>JavaDesEcbPkcs5Encrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava DES ECB PKCS5 \u52a0\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>plainText<\/code>,<code>keyStr<\/code>,<code>keyType<\/code>,<code>outputFormat<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u5bc6\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaDesEcbPkcs5Encrypt(plainText As %String, keyStr As %String, keyType As %String = \"base64\", outputFormat As %String = \"base64\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.EncryptionUtils).JavaDesEcbPkcs5Encrypt(\"1ab\u59da\u946b@#\uff01\",\"MTIzN   DU2Nzg=\")\nKvo+vm9pScNRllrCV8LMkA==\n<\/code><\/pre>\n<h3>JavaDesEcbPkcs5Decrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava DES ECB PKCS5 \u89e3\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>cipherText<\/code>,<code>keyStr<\/code>,<code>keyType<\/code>,<code>outputFormat<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u660e\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaDesEcbPkcs5Decrypt(cipherText As %String, keyStr As %String, keyType As %String = \"base64\", outputFormat As %String = \"base64\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.EncryptionUtils).JavaDesEcbPkcs5Decrypt(\"Kvo+vm9pScNRllrCV8LMkA==\",\"MTIzNDU2Nzg=\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<h2>6. 3DES<\/h2>\n<h3>JavaDesedeEcbPkcs5Encrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava 3DES ECB PKCS5 \u52a0\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>plainText<\/code>,<code>keyStr<\/code>,<code>keyType<\/code>,<code>outputFormat<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u5bc6\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaDesedeEcbPkcs5Encrypt(plainText As %String, keyStr As %String, keyType As %String = \"base64\", outputFormat As %String = \"base64\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.EncryptionUtils).JavaDesedeEcbPkcs5Encrypt(\"1ab\u59da\u946b@#\uff01\",\"5f   e300c90369642d3a15d234c0668f74\")\nZMb9ru7du2h4LfcEC\/i4qA==\n<\/code><\/pre>\n<h3>JavaDesedeEcbPkcs5Decrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava 3DES ECB PKCS5 \u89e3\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>cipherText<\/code>,<code>keyStr<\/code>,<code>keyType<\/code>,<code>outputFormat<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u660e\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaDesedeEcbPkcs5Decrypt(cipherText As %String, keyStr As %String, keyType As %String = \"base64\", outputFormat As %String = \"base64\") As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.EncryptionUtils).JavaSm4EcbPkcs7Decrypt(\"7ad4159325eb143c2e7338cd42514ea3\",\"975C7238C3824FB0\")\n1ab\u59da\u946b@#\uff01\n<\/code><\/pre>\n<h3>JavaDesedeCbcPkcs7Encrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava 3DES CBC PKCS7 \u52a0\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>plainText<\/code>,<code>keyStr<\/code>,<code>ivStr<\/code>,<code>keyType<\/code>,<code>outputFormat<\/code>,<code>url<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u5bc6\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">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\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.EncryptionUtils).JavaDesedeCbcPkcs7Encrypt({\"ScheduleOperatorID\":\"10999\",\"ScheduleOperatorName\":\"\u9648\u533b\u751f\",\"MedRecNO\":\"123\",\"Timestamp\":\"14904   15566\"}.%ToJSON(),\"eWorldTomTaw#7=*\",\"TomTaw#7\")\nVcyCfRqZ2TOpXoC+qOzAjQJ1195tlaleBEjCie4u9RPvfhua37PGs2r8+1pJUCOmv\/thVnUF2PP3K5z5fypx12lKnHHulxNlYi5rN194RDntjv9yEgh01UhkwZxvku4wosD1ECxMIXTMNt88EhipHA==\n<\/code><\/pre>\n<h3>JavaDesedeCbcPkcs7Decrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aJava 3DES CBC PKCS7 \u89e3\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>cipherText<\/code>,<code>keyStr<\/code>,<code>ivStr<\/code>,<code>keyType<\/code>,<code>outputFormat<\/code>,<code>url<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u660e\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">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\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.EncryptionUtils).JavaDesedeCbcPkcs7Decrypt(\"VcyCfRqZ2TOpXoC+qOzAjQJ1195tlaleBEjCie4u9RPvfhua37PGs2r8+1pJUCOmv\/thVnUF2PP3K5z5fypx12lKnHHulxNlYi5rN194RDntjv9yEgh01UhkwZxvku4wosD1ECxMIXTMNt88EhipHA==\",\"eWorldTomTaw#7=*\",\"TomTaw#7\")\n{\"ScheduleOperatorID\":\"10999\",\"ScheduleOperatorName\":\"\u9648\u533b\u751f\",\"MedRecNO\":\"123\",\"   Timestamp\":\"1490415566\"}\n<\/code><\/pre>\n<h1>JAVA \u52a0\u5bc6\u670d\u52a1 &#8211; \u975e\u6807\u51c6\u52a0\u5bc6<\/h1>\n<h3>SignSm3WithSm2<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aSM2+SM3 \u7b7e\u540d\uff08\u5bf9\u8c61\u8fd4\u56de\uff09\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>plainText<\/code>,<code>key<\/code>,<code>privateKey<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a<code>%DynamicObject<\/code><\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod SignSm3WithSm2(plainText As %String, key As %String, privateKey As %String) As %DynamicObject\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">USER&gt;w ##class(Util.EncryptionUtils).SignSm3WithSm2(\"1ab\u59da\u946b\",\"1HDFSDPCO01P3F60C  80A00005238496E\",\"I86Px211CbkGhovKjwAZ5zTjWRPAPkeIQKgXixxYSa4\").%ToJSON()\n{\"msg\":\"\",\"code\":0,\"data\":{\"cipherText\":\"hbv9F7i\/QGkTSfjR6Lo+vHhQEKH8\/gb7oHyQm7XUmGdxX4IQOrkCuDKiPxIo0C7ejARMPsS21G3ZpoTxT3Vl0g==\"}}\n<\/code><\/pre>\n<h3>SignSm3WithSm2Stream<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aSM2+SM3 \u7b7e\u540d\uff08\u6d41\u7248\u672c\uff09\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>plainText<\/code>,<code>key<\/code>,<code>privateKey<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a<code>%Stream.GlobalCharacter<\/code><\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod SignSm3WithSm2Stream(plainText As %Stream.GlobalCharacter, key As %String, privateKey As %String) As %Stream.GlobalCharacter\n<\/code><\/pre>\n<h3>SignSm3WithSm2StreamV2<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aSM2+SM3 \u7b7e\u540d V2\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>data<\/code>,<code>appId<\/code>,<code>appSecret<\/code>,<code>publicKey<\/code>,<code>privateKey<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a<code>%Stream.GlobalCharacter<\/code><\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod SignSm3WithSm2StreamV2(data As %Stream.GlobalCharacter, appId As %String, appSecret As %String, publicKey As %String, privateKey As %String) As %Stream.GlobalCharacter\n<\/code><\/pre>\n<h3>JavaNonstandardYlswgdEncrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aYLSWGD \u975e\u6807\u51c6\u52a0\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>plainText<\/code>,<code>publicKeyPath<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u5bc6\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaNonstandardYlswgdEncrypt(plainText As %String, publicKeyPath As %String) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<code>w ##class(Util.EncryptionUtils).JavaNonstandardYlswgdEncrypt(\"abc\",\"E:\\Desktop\\key\\gnete_2006.cer\")<\/code><\/li>\n<\/ul>\n<h3>JavaNonstandardYlswgdDecrypt<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aYLSWGD \u975e\u6807\u51c6\u89e3\u5bc6\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>cipherText<\/code>,<code>privateKeyPath<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u660e\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod JavaNonstandardYlswgdDecrypt(cipherText As %String, privateKeyPath As %String) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<code>w ##class(Util.EncryptionUtils).JavaNonstandardYlswgdDecrypt(\"&lt;cipher&gt;\",\"E:\\Desktop\\key\\gnete_2006.pfx\")<\/code><\/li>\n<\/ul>\n<hr \/>\n<h1>\u4e8c\u3001\u7f16\u7801\u65b9\u6cd5<\/h1>\n<p>\u5404\u65b9\u6cd5\u5355\u53c2\u6570\u542b\u4e49\uff08<code>str<\/code>\u3001<code>hex<\/code>\u3001<code>content<\/code> \u7b49\uff09\u89c1\u6587\u6863\u5f00\u5934 <strong>\u300c\u53c2\u6570\u7ea6\u5b9a\u4e0e\u586b\u5199\u8bf4\u660e\u300d\u7b2c 9 \u8282<\/strong>\u3002<\/p>\n<h2>1. Base64<\/h2>\n<h3>Base64Encode<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aBase64 \u7f16\u7801\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1aBase64 \u5b57\u7b26\u4e32<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod Base64Encode(str As %String) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<code>w ##class(Util.EncodingUtils).Base64Encode(\"abc\")<\/code><\/li>\n<li>\u8c03\u8bd5\u7ed3\u679c\uff1a<code>YWJj<\/code><\/li>\n<\/ul>\n<h3>Base64URLEncode<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aURL \u5b89\u5168 Base64 \u7f16\u7801\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u7f16\u7801\u5b57\u7b26\u4e32<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod Base64URLEncode(str As %String) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<code>w ##class(Util.EncodingUtils).Base64URLEncode(\"abc\")<\/code><\/li>\n<li>\u8c03\u8bd5\u7ed3\u679c\uff1a<code>YWJj<\/code><\/li>\n<\/ul>\n<h3>Base64Decode<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aBase64 \u89e3\u7801\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u539f\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod Base64Decode(str As %String) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<code>w ##class(Util.EncodingUtils).Base64Decode(\"YWJj\")<\/code><\/li>\n<li>\u8c03\u8bd5\u7ed3\u679c\uff1a<code>abc<\/code><\/li>\n<\/ul>\n<h3>Base32Encode<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aBase32 \u7f16\u7801\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u7f16\u7801\u5b57\u7b26\u4e32<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod Base32Encode(str As %String) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<code>w ##class(Util.EncodingUtils).Base32Encode(\"abc\")<\/code><\/li>\n<li>\u8c03\u8bd5\u7ed3\u679c\uff1a<code>MFRGG===<\/code><\/li>\n<\/ul>\n<h3>Base32Decode<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aBase32 \u89e3\u7801\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u539f\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod Base32Decode(str As %String) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<code>w ##class(Util.EncodingUtils).Base32Decode(\"MFRGG===\")<\/code><\/li>\n<li>\u8c03\u8bd5\u7ed3\u679c\uff1a<code>abc<\/code><\/li>\n<\/ul>\n<h2>2. HEX<\/h2>\n<h3>Hex2ByteEncode<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aHex \u6587\u672c\u8f6c\u5b57\u8282\u4e32\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>content<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u5b57\u8282\u4e32<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod Hex2ByteEncode(content As %String) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<code>w ##class(Util.EncodingUtils).Hex2ByteEncode(\"abc\")<\/code><\/li>\n<li>\u8c03\u8bd5\u7ed3\u679c\uff1a<code>006100620063<\/code><\/li>\n<\/ul>\n<h3>Hex2ByteDecode<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1a\u5b57\u8282\u4e32\u8f6c Hex \u6587\u672c\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1aHex<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod Hex2ByteDecode(str As %String) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<code>w ##class(Util.EncodingUtils).Hex2ByteDecode(\"006100620063\")<\/code><\/li>\n<li>\u8c03\u8bd5\u7ed3\u679c\uff1a<code>abc<\/code><\/li>\n<\/ul>\n<h3>HexEncode<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aHex \u7f16\u7801\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1aHex<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod HexEncode(str As %String) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<code>w ##class(Util.EncodingUtils).HexEncode(\"abc\")<\/code><\/li>\n<li>\u8c03\u8bd5\u7ed3\u679c\uff1a<code>616263<\/code><\/li>\n<\/ul>\n<h3>HexDecode<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aHex \u89e3\u7801\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>hex<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u539f\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod HexDecode(hex As %String) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<code>w ##class(Util.EncodingUtils).HexDecode(\"616263\")<\/code><\/li>\n<li>\u8c03\u8bd5\u7ed3\u679c\uff1a<code>abc<\/code><\/li>\n<\/ul>\n<h2>3. UTF8<\/h2>\n<h3>UTF8Encode<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aUTF8 \u7f16\u7801\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u7f16\u7801\u7ed3\u679c<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod UTF8Encode(str As %String) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<code>w ##class(Util.EncodingUtils).UTF8Encode(\"\u59da\u946b\")<\/code><\/li>\n<li>\u8c03\u8bd5\u7ed3\u679c\uff1a<code>\"??\u00a7\"_$c(154)_\"\u00e9\"_$c(145)_\"??\"<\/code><\/li>\n<\/ul>\n<h3>UTF8Decode<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aUTF8 \u89e3\u7801\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u539f\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod UTF8Decode(str As %String) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<code>w ##class(Util.EncodingUtils).UTF8Decode(##class(Util.EncodingUtils).UTF8Encode(\"\u59da\u946b\"))<\/code><\/li>\n<li>\u8c03\u8bd5\u7ed3\u679c\uff1a<code>\u59da\u946b<\/code><\/li>\n<\/ul>\n<h2>4. Unicode<\/h2>\n<h3>UnicodeEncode<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aUnicode \u8f6c\u4e49\u7f16\u7801\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u7f16\u7801\u5b57\u7b26\u4e32<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod UnicodeEncode(str As %String) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<code>w ##class(Util.EncodingUtils).UnicodeEncode(\"\u59da\u946b\")<\/code><\/li>\n<li>\u8c03\u8bd5\u7ed3\u679c\uff1a<code>\\u59DA\\u946B<\/code><\/li>\n<\/ul>\n<h3>UnicodeDecode<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aUnicode \u8f6c\u4e49\u89e3\u7801\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u539f\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod UnicodeDecode(str As %String) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<code>w ##class(Util.EncodingUtils).UnicodeDecode(\"\\u59DA\\u946B\")<\/code><\/li>\n<li>\u8c03\u8bd5\u7ed3\u679c\uff1a<code>\u59da\u946b<\/code><\/li>\n<\/ul>\n<h2>5. URL<\/h2>\n<h3>URLEncode<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aURL \u7f16\u7801\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u7f16\u7801\u5b57\u7b26\u4e32<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod URLEncode(str As %String) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<code>w ##class(Util.EncodingUtils).URLEncode(\"a b\")<\/code><\/li>\n<li>\u8c03\u8bd5\u7ed3\u679c\uff1a<code>a%20b<\/code><\/li>\n<\/ul>\n<h3>URLDecode<\/h3>\n<ul>\n<li>\u63cf\u8ff0\uff1aURL \u89e3\u7801\u3002<\/li>\n<li>\u53c2\u6570\uff1a<code>str<\/code><\/li>\n<li>\u8fd4\u56de\u503c\uff1a\u539f\u6587<\/li>\n<\/ul>\n<pre><code class=\"language-objectscript line-numbers\">ClassMethod URLDecode(str As %String) As %String\n<\/code><\/pre>\n<ul>\n<li>\u8c03\u8bd5\u793a\u4f8b\uff1a<code>w ##class(Util.EncodingUtils).URLDecode(\"a%20b\")<\/code><\/li>\n<li>\u8c03\u8bd5\u7ed3\u679c\uff1a<code>a b<\/code><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>[toc] \u52a0\u5bc6\u63a5\u53e3\u8bf4\u660e \u6587\u6863\u7b80\u4ecb \u672c\u8bf4\u660e\u9762\u5411\u5728 IRIS ** \u7b49\u73af\u5883\u4e2d\u8c03\u7528\u9879\u76ee\u52a0\u5bc6\u4e0e\u7f16\u7801\u80fd\u529b\u7684\u5f00\u53d1\u4eba\u5458\u3002\u6587 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-1785","post","type-post","status-publish","format-standard","hentry","category-imedical_info"],"_links":{"self":[{"href":"http:\/\/hisui.cn\/index.php?rest_route=\/wp\/v2\/posts\/1785","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/hisui.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/hisui.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/hisui.cn\/index.php?rest_route=\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"http:\/\/hisui.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1785"}],"version-history":[{"count":4,"href":"http:\/\/hisui.cn\/index.php?rest_route=\/wp\/v2\/posts\/1785\/revisions"}],"predecessor-version":[{"id":1801,"href":"http:\/\/hisui.cn\/index.php?rest_route=\/wp\/v2\/posts\/1785\/revisions\/1801"}],"wp:attachment":[{"href":"http:\/\/hisui.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1785"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/hisui.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1785"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/hisui.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1785"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}