parsec-libs 0.0.225-ertong → 0.0.227-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 CHANGED
@@ -14,3 +14,11 @@ and this project adheres to [Semantic Versioning](https://semver.org).
14
14
  ### Added
15
15
 
16
16
  - 版本号 0.0.225-ertong
17
+
18
+ ### Changed
19
+
20
+ - aes 加密模式切换为 ceb
21
+
22
+ ### Changed
23
+
24
+ - 导出 TimePicker, 解决儿童医院监管端从 antd 导出的 TimePicker 为空的问题
package/lib/index.d.ts CHANGED
@@ -23,3 +23,4 @@ export { default as CreateTeam } from './offlineMDT/workTeam/createTeam';
23
23
  export { default as TeamDetails } from './offlineMDT/workTeam/details';
24
24
  export { default as ConsultationRoomList } from './offlineMDT/consultationRoom/list';
25
25
  export { default as ConsultationRoomScheduling } from './offlineMDT/consultationRoom/scheduling';
26
+ export { TimePicker } from 'antd';
package/lib/index.js CHANGED
@@ -149,6 +149,12 @@ Object.defineProperty(exports, "ConsultationRoomScheduling", {
149
149
  return _scheduling.default;
150
150
  }
151
151
  });
152
+ Object.defineProperty(exports, "TimePicker", {
153
+ enumerable: true,
154
+ get: function get() {
155
+ return _antd.TimePicker;
156
+ }
157
+ });
152
158
 
153
159
  require("./index.less");
154
160
 
@@ -198,4 +204,6 @@ var _details = _interopRequireDefault(require("./offlineMDT/workTeam/details"));
198
204
 
199
205
  var _list6 = _interopRequireDefault(require("./offlineMDT/consultationRoom/list"));
200
206
 
201
- var _scheduling = _interopRequireDefault(require("./offlineMDT/consultationRoom/scheduling"));
207
+ var _scheduling = _interopRequireDefault(require("./offlineMDT/consultationRoom/scheduling"));
208
+
209
+ var _antd = require("antd");
@@ -1,2 +1,2 @@
1
- export declare function encryptAES(text: string): string;
2
- export declare function decryptAES(encryptedHex: string): string;
1
+ export declare function encryptAES(plainText: any): string;
2
+ export declare function decryptAES(cipherBase64: any): string;
package/lib/utils/aes.js CHANGED
@@ -8,50 +8,68 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.encryptAES = encryptAES;
9
9
  exports.decryptAES = decryptAES;
10
10
 
11
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
12
+
11
13
  var _aesJs = _interopRequireDefault(require("aes-js"));
12
14
 
13
- // 必须是 16 字节(128 位)的 key
14
- var key = _aesJs.default.utils.utf8.toBytes('tfPY4ceiCfhOGmsNnILk89EqjHsB5fPWypIE97PY1os'); // 加密
15
+ var FIXED_KEY = 'tfPY4ceiCfhOGmsNnILk89EqjHsB5fPWypIE97PY1os';
15
16
 
17
+ function base64ToBytes(base64) {
18
+ var binaryString = atob(base64);
19
+ return Uint8Array.from(binaryString, function (c) {
20
+ return c.charCodeAt(0);
21
+ });
22
+ }
16
23
 
17
- function encryptAES(text) {
18
- var textBytes = _aesJs.default.utils.utf8.toBytes(text); // 使用 ECB 模式,注意需要补齐为 16 字节块
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
+ }
19
30
 
31
+ function encryptAES(plainText) {
32
+ try {
33
+ // 1. Base64 解码密钥
34
+ var keyBytes = base64ToBytes(FIXED_KEY); // 2. 将明文转为字节数组
20
35
 
21
- var paddedTextBytes = padZeroToBlock(textBytes);
22
- var aesEcb = new _aesJs.default.ModeOfOperation.ecb(key);
23
- var encryptedBytes = aesEcb.encrypt(paddedTextBytes); // 转为十六进制字符串(也可以用 Base64)
36
+ var textBytes = _aesJs.default.utils.utf8.toBytes(plainText); // 3. PKCS7 填充
24
37
 
25
- return _aesJs.default.utils.hex.fromBytes(encryptedBytes);
26
- } // 解密
27
38
 
39
+ var paddedBytes = pkcs7Pad(textBytes); // 4. 创建 AES ECB 加密器
28
40
 
29
- function decryptAES(encryptedHex) {
30
- var encryptedBytes = _aesJs.default.utils.hex.toBytes(encryptedHex);
41
+ var aesEcb = new _aesJs.default.ModeOfOperation.ecb(keyBytes); // 5. 加密
31
42
 
32
- var aesEcb = new _aesJs.default.ModeOfOperation.ecb(key);
33
- var decryptedBytes = aesEcb.decrypt(encryptedBytes); // 去除填充
43
+ var encryptedBytes = aesEcb.encrypt(paddedBytes); // 6. 返回 base64 编码结果
34
44
 
35
- var unpadded = removePadding(decryptedBytes);
36
- return _aesJs.default.utils.utf8.fromBytes(unpadded);
37
- } // ------- 工具函数 -------
38
- // AES 块大小为 16 字节,补 0
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
+ }
39
51
 
52
+ function pkcs7Unpad(data) {
53
+ var padLength = data[data.length - 1];
54
+ return data.slice(0, data.length - padLength);
55
+ }
40
56
 
41
- function padZeroToBlock(bytes) {
42
- var padding = 16 - bytes.length % 16;
43
- var padded = new Uint8Array(bytes.length + padding);
44
- padded.set(bytes);
45
- return padded;
46
- } // 移除结尾的 0
57
+ function decryptAES(cipherBase64) {
58
+ try {
59
+ // 1. Base64 解码密钥和密文
60
+ var keyBytes = base64ToBytes(FIXED_KEY);
61
+ var encryptedBytes = base64ToBytes(cipherBase64); // 2. 创建 AES 解密器(ECB 模式)
47
62
 
63
+ var aesEcb = new _aesJs.default.ModeOfOperation.ecb(keyBytes); // 3. 解密
48
64
 
49
- function removePadding(bytes) {
50
- var i = bytes.length;
65
+ var decryptedBytes = aesEcb.decrypt(encryptedBytes); // 4. 去除 PKCS7 填充
51
66
 
52
- while (i > 0 && bytes[i - 1] === 0) {
53
- i--;
54
- }
67
+ var unpaddedBytes = pkcs7Unpad(decryptedBytes); // 5. 转成 UTF8 字符串
55
68
 
56
- return bytes.slice(0, i);
69
+ var decryptedText = _aesJs.default.utils.utf8.fromBytes(unpaddedBytes);
70
+
71
+ return decryptedText;
72
+ } catch (e) {
73
+ throw new Error('AES解密失败: ' + e.message);
74
+ }
57
75
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "parsec-libs",
3
- "version": "0.0.225-ertong",
3
+ "version": "0.0.227-ertong",
4
4
  "scripts": {
5
5
  "start": "dumi dev",
6
6
  "docs:build": "dumi build",