Skip to content

Commit bab611c

Browse files
authored
V3.1.7
V3.1.7
2 parents 157e34e + 8491c88 commit bab611c

File tree

7 files changed

+119
-57
lines changed

7 files changed

+119
-57
lines changed

package-lock.json

Lines changed: 8 additions & 8 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.1.5",
5+
"version": "3.1.7",
66
"main": "./dist/abracadabra-cn.js",
77
"type": "module",
88
"scripts": {

src/javascript/main.js

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ export class Abracadabra {
4141
static DECRYPT = "DECRYPT";
4242
static AUTO = "AUTO";
4343

44-
#input = ""; //输入类型,可以是 BLOB 或者 TEXT
45-
#output = ""; //输出类型,可以是 BLOB 或者 TEXT
44+
#input = ""; //输入类型,可以是 UINT8 或者 TEXT
45+
#output = ""; //输出类型,可以是 UINT8 或者 TEXT
4646

4747
#res = null; // 输出的结果
4848

@@ -64,15 +64,7 @@ export class Abracadabra {
6464
this.#output = outputType;
6565
}
6666
/**
67-
* 输入数据以处理,请注意指定的类型
68-
*
69-
* **模式定义**
70-
*
71-
* **ENCRYPT** 强制加密。
72-
*
73-
* **DECRYPT** 强制解密。
74-
*
75-
* **AUTO** 自动判断输入是否是密文,然后自动执行对应操作。
67+
* 魔曰 传统加密模式
7668
*
7769
* @param{string | Uint8Array}input 输入的数据,根据此前指定的输入类型,可能是字符串或字节数组
7870
* @param{string}mode 指定模式,可以是 ENCRYPT DECRYPT AUTO 中的一种;
@@ -106,7 +98,6 @@ export class Abracadabra {
10698
mode == Abracadabra.DECRYPT
10799
) {
108100
//如果是加密的字符串且没有强制指定要再次加密,或者强制执行解密,自动执行解密
109-
//注意,DEFAULT此时不可用(即使指定),在这里如果指定DEFAULT,也会自动执行解密
110101
//如果是加密的字符串,指定AUTO在此处会自动解密
111102
this.#res = Util.deMap(preCheckRes, key);
112103
} else {
@@ -136,6 +127,9 @@ export class Abracadabra {
136127
}
137128
return 0;
138129
}
130+
/**
131+
* 魔曰 获取加密/解密后的结果
132+
*/
139133
Output() {
140134
if (this.#res == null) {
141135
throw "Null Output, please input some data at first.";
@@ -170,14 +164,7 @@ export class Abracadabra {
170164
}
171165
}
172166
/**
173-
* 输入数据以处理,请注意指定的类型
174-
*
175-
* **模式定义**
176-
*
177-
* **ENCRYPT** 强制加密。
178-
*
179-
* **DECRYPT** 强制解密。
180-
*
167+
* 魔曰 文言文加密模式
181168
*
182169
* @param{string | Uint8Array}input 输入的数据,根据此前指定的输入类型,可能是字符串或字节数组
183170
* @param{string}mode 指定模式,可以是 ENCRYPT DECRYPT 中的一种;

src/javascript/main.test.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
*
1111
*/
1212

13-
import { expect, test } from "vitest";
13+
import { expect, test, bench } from "vitest";
1414

1515
import { Abracadabra } from "./main";
1616

@@ -29,6 +29,7 @@ const TestLinks = [
2929
"https://test.cn",
3030
"https://test.cc",
3131
"https://test.jp",
32+
"https://test.one",
3233
];
3334

3435
function generateRandomUint8Array(length) {
@@ -139,10 +140,11 @@ test("随机数据加密测试", { timeout: 15000 }, () => {
139140
//传统模式,自动判别
140141
Abra.Input(data, "AUTO", "ABRACADABRA");
141142
TestTemp3 = Abra.Output();
142-
Abra.Input(TestTemp2, "AUTO", "ABRACADABRA");
143+
Abra.Input(TestTemp3, "AUTO", "ABRACADABRA");
143144
TestTemp3 = Abra.Output();
144145

145146
expect(TestTemp).toStrictEqual(data);
146147
expect(TestTemp2).toStrictEqual(data);
148+
expect(TestTemp3).toStrictEqual(data);
147149
});
148150
});

src/javascript/mapping_next.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,7 @@
359359
"5D/V/N/而/V/A/,/V/zhi/道/ye/P",
360360
"5E/N/zhi/V/V/,/实为/A/A/P",
361361
"5C/本/MV/V/A/,/anti/V/N/N",
362+
"5C/N/之/无/N/,/N/V/之/N",
362363
"5D/V/N/而/V/之/者/,/非/其/N/AD/也/P",
363364
"5B/今/V/N/以/V/A/N",
364365
"5B/N/乃/V/V/N/zhi/N",
@@ -434,6 +435,8 @@
434435
"5E/每/有/V/N/,/便/AD/然/V/N/P",
435436
"5D/N/V/而/A/N/V/也",
436437
"5E/不/有/A/N/,/何/V/A/N/Q",
438+
"5C/N/之/无/N/,/N/V/之/N",
439+
"6D/N/A/N/A/,/则/所/V/得/其/A/P",
437440
"6B/以/N/V/,/like/V/N/V/N",
438441
"6C/N/V/,/V/N/V/N",
439442
"6E/虽/V/V/A/A/,/A/A/不/同/P",
@@ -465,6 +468,7 @@
465468
"8E/是/故/无/A/无/A/,/无/A/无/A/,/N/之/所/V/、/N/之/所/V/ye/P",
466469
"8C/V/N/A/A/,/V/N/A/A",
467470
"8B/N/在/A/N/,/A/N/zhi/A/,/V/于/N/P",
471+
"8B/like/A/N/V/N/,/不/V/N/V/之/N/P",
468472
"8C/A/N/AD/V/,/N/N/AD/V",
469473
"8C/A/N/V/N/,/N/N/V/N/P",
470474
"8D/虽/无/N/N/zhi/V/,/亦/V/以/AD/V/A/N/P",
@@ -512,6 +516,7 @@
512516
"5B/今/N/乃/A/N/A/N",
513517
"5D/N/V/而/A/N/V/也",
514518
"5E/不/有/A/N/,/何/V/A/N/Q",
519+
"5C/N/之/无/N/,/N/V/之/N",
515520
"6D/以/N/V/,/like/V/N/V/N",
516521
"6D/A/zhi/V/N/,/亦/like/今/zhi/V/N/,/A/夫/P",
517522
"6D/A/者/V/而/V/之/,/A/者/V/而/V/之/P",
@@ -526,6 +531,7 @@
526531
"6D/A/则为/V/N/,/A/则为/V/N/P",
527532
"6D/N/受/命/于/N/,/固/AD/然/V/于/A/N/P",
528533
"6D/N/无/N/则/V/,/N/无/N/则/V/P",
534+
"6D/N/A/N/A/,/则/所/V/得/其/A/P",
529535
"7D/夫/A/之/N/V/N/者/,/其/所以/AD/V/者/N/也/P",
530536
"7D/N/V/以/N/V/,/V/不/V/N",
531537
"7C/N/N/V/N/,/A/于/N/N",
@@ -536,6 +542,7 @@
536542
"7D/是故/A/N/不必不如/N/,/N/不必/A/于/A/N/P",
537543
"7B/有/A/N/、/A/N/、/A/N/之/N/P",
538544
"8E/虽/N/A/N/A/,/所/以/V/N/,其/N/A/ye/P",
545+
"8B/like/A/N/V/N/,/不/V/N/V/之/N/P",
539546
"8D/何必/V/N/V/N/,/V/N/zhi/N/N/哉/P",
540547
"8D/N/anti/MV/V/N/,/still/继/N/V/,/why/,/and/N/而/anti/V/N/ye/P",
541548
"8C/V/N/A/A/,/V/N/A/A",

src/javascript/utils.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ const SIG_DECRYPT_JP = "桜込凪雫実沢";
5353
const SIG_DECRYPT_CN = "玚俟玊欤瞐珏";
5454
const NULL_STR = "孎"; //默认忽略的占位字符,一个生僻字。
5555

56+
var MT = new MersenneTwister(Date.now());
57+
5658
const CHINESE_WEBPAN_LIB = [
5759
"https://",
5860
"lanzou",
@@ -583,7 +585,6 @@ function setCharOnIndex(string, index, char) {
583585
}
584586

585587
function GetRandomIndex(length) {
586-
let MT = new MersenneTwister(Math.floor(Math.random() * 1000000000));
587588
let Rand = Math.floor(MT.random() * length);
588589

589590
return Rand;
@@ -702,6 +703,7 @@ function RoundReset() {
702703
NUMBERSYMBOL_ROUND_1 = "1234567890+=_-/?.>,<|`~!@#$%^&*(){}[];:";
703704
NUMBERSYMBOL_ROUND_2 = "~3{8}_-$[6(2^&#5|1*%0,<9:`+@7/?.>4=];!)"; //手动随机打乱的乱序轮
704705
NUMBERSYMBOL_ROUND_3 = "1234567890+=_-/?.>,<|`~!@#$%^&*(){}[];:";
706+
MT = new MersenneTwister(Date.now());
705707
}
706708

707709
function RoundControlInit(key) {

src/javascript/utils_next.js

Lines changed: 89 additions & 25 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)