Skip to content

Commit 9d1adf6

Browse files
authored
V3.1.10
V3.1.10
2 parents 03b5f36 + f6271e1 commit 9d1adf6

File tree

13 files changed

+233
-76
lines changed

13 files changed

+233
-76
lines changed

README.md

Lines changed: 36 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<div align=center>
88
<h3>Abracadabra 魔曰</h3>
99

10-
<h3>下一代文本加密工具</h3>
10+
<h3>熔古铸今,韵入密语</h3>
1111
</div>
1212

1313
<div align=center>
@@ -35,8 +35,8 @@
3535

3636
</div>
3737

38-
**Abracadabra(魔曰)** 是一个安全高效的文本加密工具,对任意给定数据进行加密处理
39-
完全开源,易于部署,易于使用。
38+
**Abracadabra(魔曰)** 是开源,安全,高效的文本加密工具
39+
将数据加密为汉字构成的文言文,完全开源,易于部署,易于使用。
4040

4141
---
4242

@@ -49,30 +49,44 @@
4949

5050
- **仿真,使用文言语法句式**
5151
- 开源,所有源代码公开可查。
52-
- 随机,加密结果具有随机性
53-
- 安全,AES256 + 三重转轮混淆
54-
- 双模式,同时支持仿真加密和传统加密
52+
- 安全,完全离线的AES加密
53+
- 可靠,代码经过严格单元测试
54+
- 便捷,易于本地部署和使用
5555

56-
### **古文仿真:崭新的加密方案**
56+
<br>
57+
<sub>
58+
<i>
59+
60+
与此同时,魔曰也支持[传统加密](https://github.com/SheepChef/Abracadabra/blob/main/USAGE.md#%E4%BC%A0%E7%BB%9F%E6%A8%A1%E5%BC%8F)
61+
62+
传统加密模式类似熊曰、佛曰、兽音译者等此前流行的算法。
63+
64+
</i>
65+
</sub>
66+
67+
---
68+
69+
### **熔古铸今:文言文仿真加密**
5770

5871
> 鹏彰于物,不必奏也。捷天谨走,城光益添,和人弥任,铃夜皆写,呈雨以登铃。
5972
>
6073
> 光韵开云,雅于莺茶,停而行之之谓速。是故无悦无谜,无瑞无聪,裳之所走、树之所振也。旧铃之纯水,常为悦水之莹风。人曰:“瑞琴之路,常留于其所允行而不读之处。” 璃非笑而去之者,孰可无鹏。非将选也,非可指也,书非当事涧,仍继叶言,奈何,同森而非航水也,能鸢者益。
6174
>
6275
6376
构造高仿真文言文,**参考《古文观止》《经史百家杂钞》《古文辞类纂》等古代典籍。**
64-
加密强度不变,但引入更复杂的组句/语法选择机制,将密码学与中国古典语言学相融合
77+
标准AES256加密,引入更复杂的组句/语法选择机制,将密码和中国古典文言文相融合
6578

6679
密文高度随机,支持用户自定义随机性和文本风格偏好,打造前所未有的跨文化数字加密方案。
6780

6881
<div style="width: 350px; height: 57px; border: 1px solid #BBBBBB;"><a href="https://ctext.org/zhs"><img src="https://ctext.org/logos/ctplogo6.gif" border="0" alt="中国哲学书电子化计划" /></a></div>
6982

7083
## 快速使用
7184

72-
请查阅 [**部署指南**](DEPLOY.md) 来了解详细使用方法。
73-
85+
开发者请查阅 [**部署指南**](DEPLOY.md) 来了解详细部署方法。
7486
要部署前端网页,请查阅 Release 和前端源代码仓库。
7587

88+
如果你是普通用户,请参考本文下方的内容。
89+
7690
### JavaScript
7791

7892
使用 npm 下载 Abracadabra 库。
@@ -164,7 +178,7 @@ Abracadabra 以最常用的 3000 个汉字为密本,对大小写拉丁字母
164178

165179
映射表公开可查,查阅 [**映射表(传统)**](https://github.com/SheepChef/Abracadabra/blob/main/src/javascript/mapping.json) 或者 [**映射表(仿真)**](https://github.com/SheepChef/Abracadabra/blob/main/src/javascript/mapping_next.json) 以了解密本的全貌。
166180

167-
### AES-256-CTR
181+
### AES 加密
168182

169183
核心安全性由久经考验的 AES 加密算法提供,采用无填充的AES-256-CTR,节省密文长度。
170184

@@ -180,30 +194,29 @@ AES 加密密钥和转轮密钥是同一个,均采用哈希值。
180194

181195
数字/符号,字母分别拥有一套转轮,即总共六个转轮,改变密钥相当于更换一套完全不同的转轮。
182196

183-
转轮显著增加了 Base64 密文的安全性,查阅 [**Issue#30**](https://github.com/SheepChef/Abracadabra/issues/30) 来了解转轮的详细运行机制。
197+
转轮显著增加了 Base64 密文的安全性,查阅 [**细节和使用指南**](https://github.com/SheepChef/Abracadabra/blob/main/USAGE.md) 来了解转轮的详细运行机制。
184198

185199
### 压缩
186200

187201
为了削减密文的长度,每次加密前会对数据进行智能压缩。
188202

189203
针对短文本,采用专门为短文本优化的 Unishox2 压缩算法。
190-
一般数据则采用GZIP
204+
一般数据(>1KB)则采用GZIP
191205

192206
压缩后会执行效率验证,如果出现无效压缩,则自动回落到原始数据。
193207

194-
### 随机性
208+
## 密文对比
195209

196-
在映射为汉字的时候,每个字母/数字/符号均有多种可能性,完全随机选择。
210+
```
211+
明文:Abracadabra
197212
198-
这显著增强了密文的安全性,使得各种攻击难以奏效
213+
魔曰(仿真):不应报也。树将棋之,书曰:“天水探火,临于云楼” ,夜乃写定绸之莺,指之不为火,换之不为苗
199214
200-
## 比较
215+
魔曰(仿真):流霞以停空,局返,作文换雪。不可彰也,火之无灯,璃说之文,智鸢湛事。
201216
202-
```
203-
明文:Abracadabra
217+
魔曰(传统):桨捷欤网炯棠囍设声沢仅氖城织把夹短阐瑞玖祉作
204218
205-
魔曰(仿真):铃有将报,局有竟然。故探盈声者,当度青莺之静云。非木也,琴与树换,振棋以至雁。
206-
魔曰(传统):困句夏之全玚凪斋或骏琅咨兆咩谜理金说宙银歌舒
219+
<-- ↓↓对比项目↓↓ -->
207220
208221
熊曰:呋食性類啽家現出爾常肉嘿達嗷很
209222
佛曰:諸南隸僧南降南吽諸陀南摩隸南僧南缽南薩咤南心彌嚴迦聞婆吽願南眾南色南兜南眾南如婆如南
@@ -221,6 +234,8 @@ AES 加密密钥和转轮密钥是同一个,均采用哈希值。
221234

222235
感谢 [**@Amlkiller**](https://github.com/amlkiller) 为本项目提供十分有价值的反馈和建议。
223236

237+
感谢 **熊曰(与熊论道)、佛曰、兽音译者** 为本项目提供灵感和参考。
238+
224239
感谢贡献 PR 和参与测试的其他所有人,以及**正在使用本项目的您**
225240

226241
## 开放源代码许可

USAGE.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,12 +164,14 @@ fjhigkabcde....
164164

165165
载荷将被预先按比例分为 Begin, Main, End 三部分,对应一段密文的三节,每节都拥有一个不同的句式库。
166166

167-
实际上的载荷分配,和句式选择同时进行。有两种策略,分别是贪心算法和随机分配,每个分配步骤都会选择二者之一。
167+
有两种策略,分别是贪心算法和随机分配,每个分配步骤都会选择二者之一。
168168

169169
贪心算法在每一步尽可能大地分配载荷,从而得到一个较为整齐的分配结果。
170170

171171
用户可以指定更高的随机因子,增加随机分配的概率(最大100%),从而得到更加零碎的分配结果。
172172

173+
针对载荷分配,还引入了额外步骤以打乱/合并过于零碎的载荷,尽可能防止密文产生连续的重复模式。
174+
173175
#### 句式模板和密表
174176

175177
句式模板有一个固定的语法,以辅助解析。
Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/assets/index-B_doPvbq.js

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

docs/assets/index-DsCieFLk.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
return this._attachShadow({ mode: "open" });
1212
};
1313
</script>
14-
<script type="module" crossorigin src="./assets/index-DsCieFLk.js"></script>
14+
<script type="module" crossorigin src="./assets/index-B_doPvbq.js"></script>
1515
<link rel="modulepreload" crossorigin href="./assets/deps-CXr6hmS8.js">
16-
<link rel="modulepreload" crossorigin href="./assets/abracadabra-cn-75macEsP.js">
16+
<link rel="modulepreload" crossorigin href="./assets/abracadabra-cn-BTUscUVB.js">
1717
<link rel="stylesheet" crossorigin href="./assets/deps-PoZXHJHQ.css">
1818
<link rel="stylesheet" crossorigin href="./assets/index-B3tl3MZY.css">
1919
<link rel="manifest" href="./manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="./registerSW.js"></script></head>

docs/sw.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

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.1.9",
5+
"version": "3.1.10",
66
"main": "./dist/abracadabra-cn.js",
77
"type": "module",
88
"scripts": {

src/javascript/main.test.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,31 +55,31 @@ test("加/解密测试", { timeout: 15000 }, () => {
5555
let TestTemp3 = TestString;
5656

5757
//将随机字符串用仿真加密循环加/解密6次,判断一致性和中途是否出错。
58-
for (let i = 0; i <= 5; i++) {
58+
for (let i = 0; i <= 6; i++) {
5959
Abra.Input_Next(
6060
TestTemp,
6161
"ENCRYPT",
6262
"ABRACADABRA",
6363
i % 2 == 0,
64-
100,
64+
50,
6565
i % 2 == 0,
6666
i % 2 != 0
6767
);
6868
TestTemp = Abra.Output();
6969
}
7070

71-
for (let i = 0; i <= 5; i++) {
71+
for (let i = 0; i <= 6; i++) {
7272
Abra.Input_Next(TestTemp, "DECRYPT", "ABRACADABRA");
7373
TestTemp = Abra.Output();
7474
}
7575

7676
//将随机字符串用传统加密循环加/解密6次,判断一致性和中途是否出错。
77-
for (let i = 0; i <= 5; i++) {
77+
for (let i = 0; i <= 6; i++) {
7878
Abra.Input(TestTemp2, "ENCRYPT", "ABRACADABRA", true);
7979
TestTemp2 = Abra.Output();
8080
}
8181

82-
for (let i = 0; i <= 5; i++) {
82+
for (let i = 0; i <= 6; i++) {
8383
Abra.Input(TestTemp2, "DECRYPT", "ABRACADABRA");
8484
TestTemp2 = Abra.Output();
8585
}

0 commit comments

Comments
 (0)