Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions JavyInputAppendix.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
"RandomIndex":number, // 仅WENYAN模式下需要:算法的随机程度,越大随机性越强,默认 50,最大100,超过100将会出错;
"PianwenMode":bool, // 仅WENYAN模式下需要:尽可能使用对仗的骈文句式; 与逻辑句式冲突
"LogicMode":bool, // 仅WENYAN模式下需要:尽可能使用逻辑句式; 与骈文句式冲突
"Traditional":bool, // 仅WENYAN模式下需要:输出繁体中文。
},
}

Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,13 +57,12 @@

### **熔古铸今:文言文仿真加密**

> 鹏彰于物,不必奏也。捷天谨走,城光益添,和人弥任,铃夜皆写,呈雨以登铃。
>
> 光韵开云,雅于莺茶,停而行之之谓速。是故无悦无谜,无瑞无聪,裳之所走、树之所振也。旧铃之纯水,常为悦水之莹风。人曰:“瑞琴之路,常留于其所允行而不读之处。” 璃非笑而去之者,孰可无鹏。非将选也,非可指也,书非当事涧,仍继叶言,奈何,同森而非航水也,能鸢者益。
> 镜有能弹,雨有谧然。以语,当笑速夜,非花称雪所将湛流。不应事也,畅则为动礼,迷则为达鲤,然则绣雪自恋致矣。
>
> 此棋有南涧迷森,悠雨清琴。遥家为鸢兮,宏梦为鹤。或指林写岩,进恋于雨,是语也,鸳极驿安,璃慧空舒。况请瀚者宏,是故无和无后,无安无舒,空之所连、城之所见也。光语筑天,良于璃韵,安铃振灯,局文放花。是故无余无青,无遥无寒,语之所事、琴之所歌也。虽火俊茶长,所以赴雨,其空速也,或弹物任绸,弹楼于声。

构造高仿真文言文,**参考《古文观止》《经史百家杂钞》《古文辞类纂》等古代典籍。**
标准AES256加密,引入更复杂的组句/语法选择机制,将密码和中国古典文言文相融合。
标准 AES256 加密,引入更复杂的组句、语法匹配机制,将密码和中国古典文言文相融合。

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

Expand Down Expand Up @@ -208,6 +207,7 @@ AES 加密密钥和转轮密钥是同一个,均采用哈希值。
- [**pako**](https://github.com/nodeca/pako) GZIP压缩实现 _©Vitaly Puzrin/Andrei Tuputcyn_, **MIT** License.
- [**js-base64**](https://github.com/dankogai/js-base64) Base64编码工具实现 _©Dan Kogai_, **BSD-3-Clause** License.
- [**mersenne-twister**](https://github.com/boo1ean/mersenne-twister) 梅森旋转算法实现 _©Makoto Matsumoto/Takuji Nishimura_, **BSD-3-Clause** License.
- [**opencc-js**](https://github.com/nk2028/opencc-js) 简繁体转换实现 _©nk2028_, **MIT** License.

本项目许可证与所有依赖项的许可证兼容。

Expand Down
14 changes: 14 additions & 0 deletions docs/document/FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,17 @@ BERT 等文本分类模型,经过大量训练,也许可以单独攻击密文
随机指数可以随用户喜好设置,一般推荐设置为 50(居中位置),如果你更喜欢整齐一点的密文,可以调小它。

无论用户如何设置随机指数和过滤开关,均不会影响密文的解密。

## 繁體中文(香港)

針對使用繁體中文的用戶,魔曰現已支援繁體中文輸入/輸出。

魔曰采用的繁體中文類別為香港繁體,爲確保加解密一致性,亦采用逐字轉換的方式,因此可能與實際語言習慣不同。

用戶在加密時打開 `繁體中文` 開關,可即時得到繁體中文密文。解密時,並毋須打開此開關,流動應用會自動做出適當處置。

::: tip 繁體中文示例

琴以秀,堅則為航庭,舒則為振鴛。不必關也,清則為求空,臨則為航戀。風聽而瑞鶯連也,予關夫極鏡繡冰,在秋月之雪。益鸝事於路而報琴,當短取彩局,而歌説不靜,非請彰也。

:::
4 changes: 3 additions & 1 deletion docs/document/bench.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
## 标准

明文统一使用三个随机 UUID 首尾相接。
密文使用魔曰 V3.1.10 随机生成。
密文使用魔曰 V3.2.5 随机生成。

表头数字(0/50)为随机指数。

Expand All @@ -18,10 +18,12 @@
| ------------------- | :------------: | :-------------: | :---------------: | :------: | :---------: |
| DeepSeek R1 | ✅ (2/8) | ✅ (3/8) | ✅ (0/4) | ✅ | 文学 |
| DeepSeek V3 | ✅ (0/4) | ✅ (0/4) | ✅ (0/4) | ✅ | 古典文学 |
| DeepSeek V3.1 | ✅ (0/4) | ✅ (0/4) | ✅ (0/4) | ✅ | 文学 |
| GPT 4o | ✅ (0/4) | ✅ (0/4) | ✅ (0/4) | ✅ | 意象诗文 |
| Qwen 2.5-72B | ✅ (3/8) | ❌ (4/4) | ✅ (0/4) | ✅ | 文学创作 |
| Qwen QwQ-32B | ✅ (0/4) | ✅ (1/8) | ✅ (0/4) | 🟠\* | 古典文学 |
| Qwen 3-235B-A22B | ✅ (0/4) | ✅ (1/8) | ✅ (0/4) | ✅ | 诗歌 |
| Qwen 3-Next-80B-A3B | ✅ (0/4) | ✅ (1/8) | ✅ (0/4) | ✅ | 文言文 |
| ERNIE 4.5-300B-A47B | ✅ (0/4) | ✅ (0/4) | ✅ (0/4) | ✅ | 抽象文学 |
| Kimi K2 Instruct | ✅ (1/8) | ✅ (3/8) | ✅ (0/4) | ✅ | 文学/散文诗 |
| 腾讯云 内容安全 | —— | —— | —— | ✅ | —— |
Expand Down
9 changes: 8 additions & 1 deletion docs/document/js-deploy.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,10 @@ let Abra = new Abracadabra(); //不附带参数,
* @param {string} mode 指定模式,可以是 ENCRYPT DECRYPT 中的一种;
* @param {string} key 指定密钥,默认是 ABRACADABRA;
* @param {WenyanConfig} WenyanConfigObj 文言文的生成配置;
* @param {any}callback 回调函数,获取执行过程中特定位置的结果
* @return {number} 成功则返回 0(失败不会返回,会抛出异常)
*/
Abra.WenyanInput(input, mode, key, {...});
Abra.WenyanInput(input, mode, key, {...}, callback);
```

第一个参数 `input` 接受两种类型的输入,分别是 `String` 和 `Uint8Array`,这是此前在实例化的时候指定的输入类型。
Expand All @@ -75,6 +76,8 @@ Abra.WenyanInput(input, mode, key, {...});

如果指定了错误的密码,那么在解码/解密数据校验过程中会抛出错误。

第五个参数 `callback` 接受一个回调函数,缺省时为 `null`。程序会在执行中关键位置多次调用此函数,以便调试,无调试需求可忽略此项。

第四个参数接受一个`WenyanConfig`配置对象的输入,仅在加密的时候需要:

```javascript
Expand All @@ -87,6 +90,8 @@ export interface WenyanConfig {
PianwenMode?: boolean;
/** 指定是否强制生成逻辑密文,默认 false; */
LogicMode?: boolean;
/** 指定输出文本是否为繁体中文,默认 false; */
Traditional?: boolean;
}
```

Expand All @@ -98,6 +103,8 @@ export interface WenyanConfig {

`LogicMode` 是布尔值,默认为 `false`。如果传入 `true`,则加密结果会优先使用逻辑句式,呈现强论述类逻辑风格。解密时可以忽略这个参数。

`Traditional` 是布尔值,默认为 `false`。如果传入 `true`,则加密结果会自动转换为繁体中文(香港)。解密时可以忽略这个参数。

`PianwenMode` 和 `LogicMode` 不能同时指定为 `true`,否则会抛出错误。

```javascript
Expand Down
1 change: 1 addition & 0 deletions docs/document/wasm-deploy.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
"RandomIndex": number, // 仅WENYAN模式下需要:算法的随机程度,越大随机性越强,默认 50,最大100,超过100将会出错;
"PianwenMode":bool, // 仅WENYAN模式下需要:尽可能使用对仗的骈文句式; 与逻辑句式冲突
"LogicMode":bool, // 仅WENYAN模式下需要:尽可能使用逻辑句式; 与骈文句式冲突
"Traditional":bool, // 仅WENYAN模式下需要:输出繁体中文。
},
}
```
Expand Down
7 changes: 4 additions & 3 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,12 +82,12 @@ Abracadabra(魔曰) 是开源,安全,高效的文本加密工具。

### **熔古铸今:文言文仿真加密**

> 鹏彰于物,不必奏也。捷天谨走,城光益添,和人弥任,铃夜皆写,呈雨以登铃
> 镜有能弹,雨有谧然。以语,当笑速夜,非花称雪所将湛流。不应事也,畅则为动礼,迷则为达鲤,然则绣雪自恋致矣
>
> 光韵开云,雅于莺茶,停而行之之谓速。是故无悦无谜,无瑞无聪,裳之所走、树之所振也。旧铃之纯水,常为悦水之莹风。人曰:“瑞琴之路,常留于其所允行而不读之处。” 璃非笑而去之者,孰可无鹏。非将选也,非可指也,书非当事涧,仍继叶言,奈何,同森而非航水也,能鸢者益
> 此棋有南涧迷森,悠雨清琴。遥家为鸢兮,宏梦为鹤。或指林写岩,进恋于雨,是语也,鸳极驿安,璃慧空舒。况请瀚者宏,是故无和无后,无安无舒,空之所连、城之所见也。光语筑天,良于璃韵,安铃振灯,局文放花。是故无余无青,无遥无寒,语之所事、琴之所歌也。虽火俊茶长,所以赴雨,其空速也,或弹物任绸,弹楼于声

构造高仿真文言文,**参考《古文观止》《经史百家杂钞》《古文辞类纂》等古代典籍。**
标准 AES256 加密,引入更复杂的组句/语法选择机制,将密码和中国古典文言文相融合。
标准 AES256 加密,引入更复杂的组句、语法匹配机制,将密码和中国古典文言文相融合。

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

Expand All @@ -107,6 +107,7 @@ Abracadabra(魔曰) 是开源,安全,高效的文本加密工具。
- [**pako**](https://github.com/nodeca/pako) GZIP 压缩实现 _©Vitaly Puzrin/Andrei Tuputcyn_, **MIT** License.
- [**js-base64**](https://github.com/dankogai/js-base64) Base64 编码工具实现 _©Dan Kogai_, **BSD-3-Clause** License.
- [**mersenne-twister**](https://github.com/boo1ean/mersenne-twister) 梅森旋转算法实现 _©Makoto Matsumoto/Takuji Nishimura_, **BSD-3-Clause** License.
- [**opencc-js**](https://github.com/nk2028/opencc-js) 简繁体转换实现 _©nk2028_, **MIT** License.

本项目许可证与所有依赖项的许可证兼容。

Expand Down
11 changes: 9 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "abracadabra-cn",
"description": "Use Chinese to Encode Everything",
"private": false,
"version": "3.2.0",
"version": "3.2.5",
"main": "./dist/abracadabra-cn.js",
"types": "./dist/abracadabra-cn.d.ts",
"type": "module",
Expand All @@ -29,6 +29,7 @@
"crypto-js": "^4.2.0",
"js-base64": "^3.7.7",
"mersenne-twister": "^1.1.0",
"opencc-js": "^1.0.5",
"pako": "^2.1.0"
},
"files": [
Expand Down
Loading