@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.
- package/package.json +1 -1
- package/src/core/crypto.js +24 -14
package/package.json
CHANGED
package/src/core/crypto.js
CHANGED
|
@@ -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
|
|
68
|
-
|
|
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(
|
|
74
|
+
var actualHeader = kimapContent.substring(0, Math.min(newHeader.length, kimapContent.length));
|
|
71
75
|
var errorMsg = '无效的Kimap文件格式\n' +
|
|
72
|
-
'期望的文件头: "' +
|
|
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
|
-
|
|
82
|
+
var headerUsed = isNewFormat ? newHeader : oldHeader;
|
|
83
|
+
console.log('[Crypto] ✓ 文件头验证通过 (格式: ' + headerUsed + ')');
|
|
79
84
|
|
|
80
85
|
// 2. 提取加密内容(去掉文件头)
|
|
81
|
-
var headerLength =
|
|
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
|
|
136
|
-
|
|
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(
|
|
147
|
+
var actualHeader = themeContent.substring(0, Math.min(newHeader.length, themeContent.length));
|
|
139
148
|
var errorMsg = '无效的Theme文件格式\n' +
|
|
140
|
-
'期望的文件头: "' +
|
|
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
|
-
|
|
155
|
+
var headerUsed = isNewFormat ? newHeader : oldHeader;
|
|
156
|
+
console.log('[Crypto] ✓ 文件头验证通过 (格式: ' + headerUsed + ')');
|
|
147
157
|
|
|
148
158
|
// 2. 提取加密内容
|
|
149
|
-
var headerLength =
|
|
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
|
|