Skip to content

Commit a94d5e9

Browse files
authored
V3.3.1
V3.3.1
2 parents f1684c6 + 91f4d67 commit a94d5e9

File tree

10 files changed

+84
-36
lines changed

10 files changed

+84
-36
lines changed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "abracadabra-cn",
33
"description": "Use Chinese to Encode Everything",
44
"private": false,
5-
"version": "3.3.0",
5+
"version": "3.3.1",
66
"main": "./dist/abracadabra-cn.js",
77
"types": "./dist/abracadabra-cn.d.ts",
88
"type": "module",

src/javascript/ChineseMappingHelper.js

Lines changed: 19 additions & 7 deletions
Large diffs are not rendered by default.

src/javascript/CoreHandler.js

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import {
2121
CheckLuhnBit,
2222
packByte,
2323
unpackByte,
24+
GetRandomIndex,
2425
} from "./Misc.js";
2526

2627
export class WenyanConfig {
@@ -189,12 +190,23 @@ export function Enc(
189190

190191
if (AdvancedEncObj.Enable) {
191192
//加上高级加密标头
192-
OriginStr = ADVANCED_ENC_MAGIC + OriginStr;
193+
//OriginStr = ADVANCED_ENC_MAGIC + OriginStr;
194+
195+
let InsertRange = OriginStr.length > 10 ? 10 : OriginStr.length - 1;
196+
197+
let InsertIndex = GetRandomIndex(InsertRange);
198+
199+
OriginStr =
200+
OriginStr.slice(0, InsertIndex) +
201+
ADVANCED_ENC_MAGIC +
202+
OriginStr.slice(InsertIndex);
193203
}
194204

195205
try {
196206
if (callback != null) callback(new CallbackObj("ENC_BASE64", OriginStr));
197-
} catch (err) {}
207+
} catch (err) {
208+
// continue regardless of error
209+
}
198210
//映射
199211
let Res = WenyanSimulatorObj.enMap(
200212
OriginStr,
@@ -221,7 +233,7 @@ export function Dec(
221233
key,
222234
TOTPEpoch = null,
223235
TOTPBaseKey = null,
224-
callback
236+
callback = null
225237
) {
226238
//初始化
227239
//input.output Uint8Array
@@ -235,9 +247,13 @@ export function Dec(
235247

236248
let TempStr2Int = new Uint8Array();
237249

238-
if (TempStr1.slice(0, 2) === ADVANCED_ENC_MAGIC) {
250+
if (TempStr1.slice(0, 13).indexOf(ADVANCED_ENC_MAGIC) !== -1) {
239251
//检测高级加密标志
240-
TempStr1 = TempStr1.slice(2);
252+
253+
TempStr1 =
254+
TempStr1.slice(0, TempStr1.slice(0, 13).indexOf(ADVANCED_ENC_MAGIC)) +
255+
TempStr1.slice(TempStr1.slice(0, 13).indexOf(ADVANCED_ENC_MAGIC) + 2); //移除高级加密标志
256+
241257
AdvancedMarker = true;
242258
}
243259

src/javascript/EncryptHelper.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ function AES_256_CTR_E(Uint8attr, key, RandomBytes) {
4343

4444
let ivArray = new Uint8Array(16);
4545

46-
for (var i = 0; i < 16; i++) {
46+
for (let i = 0; i < 16; i++) {
4747
ivArray[i] = HashHashArray[i];
4848
}
4949

@@ -82,7 +82,7 @@ function AES_256_CTR_HMAC_SHA256_E(
8282
if (AdvancedEncObj.UseStrongIV) {
8383
ivArray = new Uint8Array(16);
8484

85-
for (var i = 0; i < 16; i++) {
85+
for (let i = 0; i < 16; i++) {
8686
//加载IV
8787
ivArray[i] = RandomBytes[i];
8888
}
@@ -98,7 +98,7 @@ function AES_256_CTR_HMAC_SHA256_E(
9898

9999
ivArray = new Uint8Array(16);
100100

101-
for (var i = 0; i < 16; i++) {
101+
for (let i = 0; i < 16; i++) {
102102
ivArray[i] = HashHashArray[i];
103103
}
104104
}
@@ -196,7 +196,7 @@ function AES_256_CTR_HMAC_SHA256_D(
196196
if (AdvancedEncObj.UseStrongIV) {
197197
//加载强IV或弱IV
198198
ivArray = new Uint8Array(16);
199-
for (var i = 0; i < 16; i++) {
199+
for (let i = 0; i < 16; i++) {
200200
ivArray[i] = RandomBytes[i];
201201
}
202202
} else {
@@ -211,7 +211,7 @@ function AES_256_CTR_HMAC_SHA256_D(
211211

212212
ivArray = new Uint8Array(16);
213213

214-
for (var i = 0; i < 16; i++) {
214+
for (let i = 0; i < 16; i++) {
215215
ivArray[i] = HashHashArray[i];
216216
}
217217
}

src/javascript/Misc.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -132,11 +132,7 @@ export function CheckLuhnBit(Data) {
132132
let DCheck = Data[Data.byteLength - 1];
133133
let Check = GetLuhnBit(Data.subarray(0, Data.byteLength - 1));
134134

135-
if (Check == DCheck) {
136-
return true;
137-
} else {
138-
return false;
139-
}
135+
return Check == DCheck;
140136
}
141137

142138
export function shuffle(array) {
@@ -190,7 +186,12 @@ export function unpackByte(byte) {
190186
byte: byte & 0xff,
191187
size,
192188
bits: [b0, b1, b2, b3],
193-
flags: { b0: !!b0, b1: !!b1, b2: !!b2, b3: !!b3 }, // 方便需要布尔值时使用
189+
flags: {
190+
b0: Boolean(b0),
191+
b1: Boolean(b1),
192+
b2: Boolean(b2),
193+
b3: Boolean(b3),
194+
}, // 方便需要布尔值时使用
194195
};
195196
}
196197

src/javascript/RoundObfusHelper.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,9 @@ export class RoundObfus {
180180
this.NUMBERSYMBOL_ROUND_3,
181181
])
182182
);
183-
} catch (err) {}
183+
} catch (err) {
184+
// continue regardless of error
185+
}
184186
}
185187
}
186188

src/javascript/main.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ export class Abracadabra {
7878
key = "ABRACADABRA",
7979
WenyanConfigObj = new Core.WenyanConfig(true, 50, false, false),
8080
AdvancedEncObj = new Core.AdvancedEncConfig(),
81-
callback
81+
callback = null
8282
) {
8383
//开始处理
8484
if (this.#input == Abracadabra.UINT8) {
@@ -237,6 +237,7 @@ export class Abracadabra {
237237
return encodedData;
238238
}
239239
}
240+
return undefined;
240241
}
241242

242243
/**

src/javascript/main.test.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ test("高级加密测试", { timeout: 40000 }, () => {
175175
}
176176
);
177177
TestTemp = Abra.Output();
178-
Abra.WenyanInput(TestTemp, "DECRYPT", "ABRACADABRA", ...[,], {
178+
Abra.WenyanInput(TestTemp, "DECRYPT", "ABRACADABRA", undefined, {
179179
TOTPEpoch: TOTPEpochFreeze,
180180
});
181181
TestTemp = Abra.Output();
@@ -197,7 +197,7 @@ test("高级加密测试", { timeout: 40000 }, () => {
197197
}
198198
);
199199
TestTemp = Abra.Output();
200-
Abra.WenyanInput(TestTemp, "DECRYPT", "ABRACADABRA", ...[,], {
200+
Abra.WenyanInput(TestTemp, "DECRYPT", "ABRACADABRA", undefined, {
201201
TOTPEpoch: TOTPEpochFreeze,
202202
});
203203
TestTemp = Abra.Output();
@@ -218,7 +218,7 @@ test("高级加密测试", { timeout: 40000 }, () => {
218218
}
219219
);
220220
TestTemp = Abra.Output();
221-
Abra.WenyanInput(TestTemp, "DECRYPT", "ABRACADABRA", ...[,], {
221+
Abra.WenyanInput(TestTemp, "DECRYPT", "ABRACADABRA", undefined, {
222222
TOTPEpoch: TOTPEpochFreeze,
223223
});
224224
TestTemp = Abra.Output();
@@ -239,7 +239,7 @@ test("高级加密测试", { timeout: 40000 }, () => {
239239
}
240240
);
241241
TestTemp = Abra.Output();
242-
Abra.WenyanInput(TestTemp, "DECRYPT", "ABRACADABRA", ...[,], {
242+
Abra.WenyanInput(TestTemp, "DECRYPT", "ABRACADABRA", undefined, {
243243
TOTPEpoch: TOTPEpochFreeze,
244244
});
245245
TestTemp = Abra.Output();
@@ -260,7 +260,7 @@ test("高级加密测试", { timeout: 40000 }, () => {
260260
}
261261
);
262262
TestTemp = Abra.Output();
263-
Abra.WenyanInput(TestTemp, "DECRYPT", "ABRACADABRA", ...[,], {
263+
Abra.WenyanInput(TestTemp, "DECRYPT", "ABRACADABRA", undefined, {
264264
TOTPEpoch: TOTPEpochFreeze,
265265
});
266266
TestTemp = Abra.Output();
@@ -281,7 +281,7 @@ test("高级加密测试", { timeout: 40000 }, () => {
281281
}
282282
);
283283
TestTemp = Abra.Output();
284-
Abra.WenyanInput(TestTemp, "DECRYPT", "ABRACADABRA", ...[,], {
284+
Abra.WenyanInput(TestTemp, "DECRYPT", "ABRACADABRA", undefined, {
285285
TOTPEpoch: TOTPEpochFreeze,
286286
});
287287
TestTemp = Abra.Output();
@@ -302,7 +302,7 @@ test("高级加密测试", { timeout: 40000 }, () => {
302302
}
303303
);
304304
TestTemp = Abra.Output();
305-
Abra.WenyanInput(TestTemp, "DECRYPT", "ABRACADABRA", ...[,], {
305+
Abra.WenyanInput(TestTemp, "DECRYPT", "ABRACADABRA", undefined, {
306306
TOTPEpoch: TOTPEpochFreeze,
307307
});
308308
TestTemp = Abra.Output();
@@ -325,7 +325,7 @@ test("高级加密测试", { timeout: 40000 }, () => {
325325
}
326326
);
327327
TestTemp = Abra.Output();
328-
Abra.WenyanInput(TestTemp, "DECRYPT", "ABRACADABRA", ...[,], {
328+
Abra.WenyanInput(TestTemp, "DECRYPT", "ABRACADABRA", undefined, {
329329
TOTPBaseKey: "https://pixiv.net",
330330
TOTPEpoch: 1767928319717,
331331
TOTPTimeStep: 0,

src/javascript/mapping_next.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,7 @@
362362
"4D/N/无/N/,/无以/V/N",
363363
"4D/欲/V/其/N/者/,/先/V/其/N/P",
364364
"4D/今/夫/N/,/一/N/之/多/,/及/其/A/A/P",
365+
"4D/有/所/A/,/有/所/V/,/然/而/MV/V/其/N/者/也/P",
365366
"4D/V/之/不/为/N/,/V/之/不/为/N/P",
366367
"4D/吾/为/N/之/所/V/,/N/亦/为/吾/所/V/P",
367368
"5D/V/N/而/V/A/,/V/zhi/道/ye/P",
@@ -392,6 +393,7 @@
392393
"6D/N/受/命/于/N/,/固/AD/然/V/于/A/N/P",
393394
"6D/V/N/而/不/能/V/,/V/而/不/能/V/,/N/也/P",
394395
"6D/常/有/N/V/A/N/,/请/N/为/N/P",
396+
"6D/A/而/V/,/A/而/V/者/,/A/N/也/P",
395397
"7D/夫/A/之/N/V/N/者/,/其/所以/AD/V/者/N/也/P",
396398
"7C/N/以/A/A/,/AD/V/A/N",
397399
"7B/V/N/A/,/A/N/V/N",
@@ -443,6 +445,7 @@
443445
"4D/N/无/N/,/无以/V/N/P",
444446
"4D/此/谓/V/N/在/V/其/N/P",
445447
"4D/今/夫/N/,/一/N/之/多/,/及/其/A/A/P",
448+
"4D/有/所/A/,/有/所/V/,/然/而/MV/V/其/N/者/也/P",
446449
"4D/欲/V/其/N/者/,/先/V/其/N/P",
447450
"4E/上/不/V/N/,/下/不/V/N/P",
448451
"4D/A/者/自/V/也/,/而/N/自/V/也/P",
@@ -454,6 +457,7 @@
454457
"4D/A/N/常有/,/而/A/N/不常有/P",
455458
"4D/吾/为/N/之/所/V/,/N/亦/为/吾/所/V/P",
456459
"4C/不/以/N/V/,/不/以/N/V/P",
460+
"4D/有/N/V/者/,/不/得/其/N/则/V/P",
457461
"4D/V/之/不/为/N/,/V/之/不/为/N/P",
458462
"5B/今/V/N/以/V/A/N",
459463
"5B/N/乃/V/V/N/zhi/N",
@@ -463,12 +467,16 @@
463467
"5D/A/N/之/N/,/like/N/like/N/P",
464468
"5D/以/A/N/为/N/者/,/N/MV/弗/而/V/之/P",
465469
"5D/故/夫/A/N/之/N/,/不/可/make/其/V/于/N/也/P",
470+
"5D/N/不/为/A/,/而/有/时/乎/为/A/,/谓/A/N/者/也/P",
471+
"5D/于/是/A/N/之/N/AD/然/V/矣/P",
466472
"5B/今/N/乃/A/N/A/N",
467473
"5E/每/有/V/N/,/便/AD/然/V/N/P",
468474
"5D/N/V/而/A/N/V/也",
469475
"5E/不/有/A/N/,/何/V/A/N/Q",
470476
"5C/N/之/无/N/,/N/V/之/N",
471477
"6D/N/A/N/A/,/则/所/V/得/其/A/P",
478+
"6D/V/AD/而/V/AD/,/anti/MV/V/于/N/也/P",
479+
"6D/A/而/V/,/A/而/V/者/,/A/N/也/P",
472480
"6B/以/N/V/,/like/V/N/V/N",
473481
"6B/V/A/N/若/V/A/N",
474482
"6C/N/V/,/V/N/V/N",
@@ -518,6 +526,7 @@
518526
"8B/A/N/MV/A/N/之/A/,/V/N/中/之/A",
519527
"8D/N/V/于/A/N/之上/,/AD/V/于/A/N/之间/P",
520528
"8D/是/故/A/N/有/A/N/,/必/AD/V/以/得/之/,/AD/V/以/失/之/P",
529+
"8D/故/其/N/不/可/以/V/N/,/A/N/V/N/而/不/MV/N/P",
521530
"8B/使/其/A/N/AD/V/,/A/N/AD/V/P",
522531
"9B/N/MV/V/N/V/V/,/but/N/N/AD/V",
523532
"9D/A/N/V/zhi/而不/V/zhi/、亦/make/A/N/er/复/V/A/N/ye/P",
@@ -551,8 +560,10 @@
551560
"4D/噫/,/A/N/ye/,/N/谁/与/V/Q",
552561
"4D/此/谓/V/N/在/V/其/N/P",
553562
"4D/今/夫/N/,/一/N/之/多/,/及/其/A/A/P",
563+
"4D/有/所/A/,/有/所/V/,/然/而/MV/V/其/N/者/也/P",
554564
"4E/上/不/V/N/,/下/不/V/N/P",
555565
"4D/欲/V/其/N/者/,/先/V/其/N/P",
566+
"4D/有/N/V/者/,/不/得/其/N/则/V/P",
556567
"4C/不/以/N/V/,/不/以/N/V/P",
557568
"4D/V/之/不/为/N/,/V/之/不/为/N/P",
558569
"4D/然/则/A/N/自/N/V/矣/P",
@@ -564,6 +575,8 @@
564575
"5D/V/N/而/V/之/者/,/非/其/N/AD/也/P",
565576
"5D/以/A/N/为/N/者/,/N/MV/弗/而/V/之/P",
566577
"5D/A/N/之/N/,/like/N/like/N/P",
578+
"5D/N/不/为/A/,/而/有/时/乎/为/A/,/谓/A/N/者/也/P",
579+
"5D/于/是/A/N/之/N/AD/然/V/矣/P",
567580
"5D/故/夫/A/N/之/N/,/不/可/make/其/V/于/N/也/P",
568581
"5B/今/N/乃/A/N/A/N",
569582
"5D/N/V/而/A/N/V/也",
@@ -574,6 +587,8 @@
574587
"6D/A/zhi/V/N/,/亦/like/今/zhi/V/N/,/A/夫/P",
575588
"6D/A/者/V/而/V/之/,/A/者/V/而/V/之/P",
576589
"6D/若/居/A/N/之/N/,/则/当/A/N/之/V/P",
590+
"6D/V/AD/而/V/AD/,/anti/MV/V/于/N/也/P",
591+
"6D/A/而/V/,/A/而/V/者/,/A/N/也/P",
577592
"6B/N/V/,/V/N/V/N",
578593
"6E/V/N/之/N/,/为/N/V/者/,/可以/V/矣/P",
579594
"6D/V/MV/with/其/N/,/而/V/MV/V/以/N/者/,/N/也/P",
@@ -602,6 +617,7 @@
602617
"8D/何必/V/N/V/N/,/V/N/zhi/N/N/哉/P",
603618
"8D/N/anti/MV/V/N/,/still/继/N/V/,/why/,/and/N/而/anti/V/N/ye/P",
604619
"8D/是/故/A/N/有/A/N/,/必/AD/V/以/得/之/,/AD/V/以/失/之/P",
620+
"8D/故/其/N/不/可/以/V/N/,/A/N/V/N/而/不/MV/N/P",
605621
"8C/V/N/A/A/,/V/N/A/A",
606622
"8B/N/在/A/N/,/A/N/zhi/A/,/V/于/N/P",
607623
"8C/A/N/AD/V/,/N/N/AD/V",

0 commit comments

Comments
 (0)