parsec-libs 0.0.224-ertong → 0.0.226-ertong

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,20 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com),
6
+ and this project adheres to [Semantic Versioning](https://semver.org).
7
+
8
+ ## [ertong-v0.0.225] - 2025-06-19
9
+
10
+ ### Fixed
11
+
12
+ - 查询转诊详情接口 id 使用 AES 加密
13
+
14
+ ### Added
15
+
16
+ - 版本号 0.0.225-ertong
17
+
18
+ ### Changed
19
+
20
+ - aes 加密模式切换为 ceb
@@ -15,6 +15,8 @@ var _createApiHooks = _interopRequireDefault(require("create-api-hooks"));
15
15
 
16
16
  var _parsecAdmin = require("parsec-admin");
17
17
 
18
+ var _aes = require("../utils/aes");
19
+
18
20
  var _default = {
19
21
  转诊列表: (0, _createApiHooks.default)(function (params) {
20
22
  return _parsecAdmin.request.get('/ch-referral-center/api/doctor/referral/page', {
@@ -61,7 +63,7 @@ var _default = {
61
63
  查询转诊详情: (0, _createApiHooks.default)(function (_ref) {
62
64
  var id = _ref.id,
63
65
  headers = (0, _objectWithoutProperties2.default)(_ref, ["id"]);
64
- return _parsecAdmin.request.get("/ch-referral-center/api/mch/referral/get/detail/".concat(id), {
66
+ return _parsecAdmin.request.get("/ch-referral-center/api/mch/referral/get/detail/".concat((0, _aes.encryptAES)("".concat(id))), {
65
67
  headers: headers
66
68
  });
67
69
  }),
@@ -0,0 +1,2 @@
1
+ export declare function encryptAES(plainText: any): string;
2
+ export declare function decryptAES(cipherBase64: any): string;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.encryptAES = encryptAES;
9
+ exports.decryptAES = decryptAES;
10
+
11
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
12
+
13
+ var _aesJs = _interopRequireDefault(require("aes-js"));
14
+
15
+ var FIXED_KEY = 'tfPY4ceiCfhOGmsNnILk89EqjHsB5fPWypIE97PY1os';
16
+
17
+ function base64ToBytes(base64) {
18
+ var binaryString = atob(base64);
19
+ return Uint8Array.from(binaryString, function (c) {
20
+ return c.charCodeAt(0);
21
+ });
22
+ }
23
+
24
+ function pkcs7Pad(data) {
25
+ var blockSize = 16;
26
+ var padLength = blockSize - data.length % blockSize;
27
+ var padding = new Uint8Array(padLength).fill(padLength);
28
+ return Uint8Array.from([].concat((0, _toConsumableArray2.default)(data), (0, _toConsumableArray2.default)(padding)));
29
+ }
30
+
31
+ function encryptAES(plainText) {
32
+ try {
33
+ // 1. Base64 解码密钥
34
+ var keyBytes = base64ToBytes(FIXED_KEY); // 2. 将明文转为字节数组
35
+
36
+ var textBytes = _aesJs.default.utils.utf8.toBytes(plainText); // 3. PKCS7 填充
37
+
38
+
39
+ var paddedBytes = pkcs7Pad(textBytes); // 4. 创建 AES ECB 加密器
40
+
41
+ var aesEcb = new _aesJs.default.ModeOfOperation.ecb(keyBytes); // 5. 加密
42
+
43
+ var encryptedBytes = aesEcb.encrypt(paddedBytes); // 6. 返回 base64 编码结果
44
+
45
+ var encryptedBase64 = btoa(String.fromCharCode.apply(String, (0, _toConsumableArray2.default)(encryptedBytes)));
46
+ return encryptedBase64;
47
+ } catch (e) {
48
+ throw new Error('AES加密失败: ' + e.message);
49
+ }
50
+ }
51
+
52
+ function pkcs7Unpad(data) {
53
+ var padLength = data[data.length - 1];
54
+ return data.slice(0, data.length - padLength);
55
+ }
56
+
57
+ function decryptAES(cipherBase64) {
58
+ try {
59
+ // 1. Base64 解码密钥和密文
60
+ var keyBytes = base64ToBytes(FIXED_KEY);
61
+ var encryptedBytes = base64ToBytes(cipherBase64); // 2. 创建 AES 解密器(ECB 模式)
62
+
63
+ var aesEcb = new _aesJs.default.ModeOfOperation.ecb(keyBytes); // 3. 解密
64
+
65
+ var decryptedBytes = aesEcb.decrypt(encryptedBytes); // 4. 去除 PKCS7 填充
66
+
67
+ var unpaddedBytes = pkcs7Unpad(decryptedBytes); // 5. 转成 UTF8 字符串
68
+
69
+ var decryptedText = _aesJs.default.utils.utf8.fromBytes(unpaddedBytes);
70
+
71
+ return decryptedText;
72
+ } catch (e) {
73
+ throw new Error('AES解密失败: ' + e.message);
74
+ }
75
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "parsec-libs",
3
- "version": "0.0.224-ertong",
3
+ "version": "0.0.226-ertong",
4
4
  "scripts": {
5
5
  "start": "dumi dev",
6
6
  "docs:build": "dumi build",
@@ -30,6 +30,7 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@babel/runtime": "^7.10.4",
33
+ "aes-js": "^3.1.2",
33
34
  "china-division": "^2.3.1",
34
35
  "clipboard": "^2.0.8",
35
36
  "create-api-hooks": "^0.0.27",