@kimap/indoor-positioning-sdk-vue2 4.1.2 → 4.1.3

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/core/crypto.js +24 -14
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kimap/indoor-positioning-sdk-vue2",
3
- "version": "4.1.2",
3
+ "version": "4.1.3",
4
4
  "description": "Vue2自包含室内定位SDK - 完全兼容Webpack3+Babel6 | Vue2 Self-Contained Indoor Positioning SDK",
5
5
  "main": "index.js",
6
6
  "files": [
@@ -63,22 +63,27 @@ function decryptKimap(kimapContent) {
63
63
  var preview = kimapContent.substring(0, Math.min(50, kimapContent.length));
64
64
  console.log('[Crypto] 内容预览:', preview);
65
65
 
66
- // 1. 检查文件头
67
- var expectedHeader = 'KIMAP_ENCRYPTED_V1';
68
- if (!kimapContent.startsWith(expectedHeader)) {
66
+ // 1. 检查文件头 - 支持新旧两种格式
67
+ var newHeader = 'KIMAP_ENCRYPTED_V1';
68
+ var oldHeader = 'KIMAP_V1';
69
+ var isNewFormat = kimapContent.startsWith(newHeader);
70
+ var isOldFormat = kimapContent.startsWith(oldHeader);
71
+
72
+ if (!isNewFormat && !isOldFormat) {
69
73
  // 详细的错误信息
70
- var actualHeader = kimapContent.substring(0, Math.min(expectedHeader.length, kimapContent.length));
74
+ var actualHeader = kimapContent.substring(0, Math.min(newHeader.length, kimapContent.length));
71
75
  var errorMsg = '无效的Kimap文件格式\n' +
72
- '期望的文件头: "' + expectedHeader + '"\n' +
76
+ '期望的文件头: "' + newHeader + '" 或 "' + oldHeader + '"\n' +
73
77
  '实际的文件头: "' + actualHeader + '"\n' +
74
78
  '内容预览(前100字符): ' + kimapContent.substring(0, Math.min(100, kimapContent.length));
75
79
  throw new Error(errorMsg);
76
80
  }
77
81
 
78
- console.log('[Crypto] 文件头验证通过');
82
+ var headerUsed = isNewFormat ? newHeader : oldHeader;
83
+ console.log('[Crypto] ✓ 文件头验证通过 (格式: ' + headerUsed + ')');
79
84
 
80
85
  // 2. 提取加密内容(去掉文件头)
81
- var headerLength = expectedHeader.length + 1; // +1 for newline
86
+ var headerLength = headerUsed.length + 1; // +1 for newline
82
87
  var encryptedBase64 = kimapContent.substring(headerLength);
83
88
  console.log('[Crypto] Base64内容长度:', encryptedBase64.length);
84
89
 
@@ -131,22 +136,27 @@ function decryptTheme(themeContent) {
131
136
  var preview = themeContent.substring(0, Math.min(50, themeContent.length));
132
137
  console.log('[Crypto] 内容预览:', preview);
133
138
 
134
- // 1. 检查文件头
135
- var expectedHeader = 'KITHEME_ENCRYPTED_V1';
136
- if (!themeContent.startsWith(expectedHeader)) {
139
+ // 1. 检查文件头 - 支持新旧两种格式
140
+ var newHeader = 'KITHEME_ENCRYPTED_V1';
141
+ var oldHeader = 'THEME_V1';
142
+ var isNewFormat = themeContent.startsWith(newHeader);
143
+ var isOldFormat = themeContent.startsWith(oldHeader);
144
+
145
+ if (!isNewFormat && !isOldFormat) {
137
146
  // 详细的错误信息
138
- var actualHeader = themeContent.substring(0, Math.min(expectedHeader.length, themeContent.length));
147
+ var actualHeader = themeContent.substring(0, Math.min(newHeader.length, themeContent.length));
139
148
  var errorMsg = '无效的Theme文件格式\n' +
140
- '期望的文件头: "' + expectedHeader + '"\n' +
149
+ '期望的文件头: "' + newHeader + '" 或 "' + oldHeader + '"\n' +
141
150
  '实际的文件头: "' + actualHeader + '"\n' +
142
151
  '内容预览(前100字符): ' + themeContent.substring(0, Math.min(100, themeContent.length));
143
152
  throw new Error(errorMsg);
144
153
  }
145
154
 
146
- console.log('[Crypto] 文件头验证通过');
155
+ var headerUsed = isNewFormat ? newHeader : oldHeader;
156
+ console.log('[Crypto] ✓ 文件头验证通过 (格式: ' + headerUsed + ')');
147
157
 
148
158
  // 2. 提取加密内容
149
- var headerLength = expectedHeader.length + 1; // +1 for newline
159
+ var headerLength = headerUsed.length + 1; // +1 for newline
150
160
  var encryptedBase64 = themeContent.substring(headerLength);
151
161
  console.log('[Crypto] Base64内容长度:', encryptedBase64.length);
152
162