add /encrypt page

This commit is contained in:
A.C.Sukazyo Eyre 2023-02-23 15:31:21 +08:00
parent 9a797e2bb7
commit b23365ad0c
Signed by: Eyre_S
GPG Key ID: C17CE40291207874
7 changed files with 94 additions and 3 deletions

View File

@ -8,6 +8,7 @@
<Page id="command/user" name="/user" />
<Page id="command/nbnhhsh" name="/nbnhhsh &lt;small&gt;能不能好好说话?&lt;/small&gt;" />
<Page id="command/186-ip-whois" name="&lt;small&gt;/ip /whois&lt;/small&gt;" />
<Page id="command/encrypt" name="/encrypt" />
</Chapter>
<Chapter name="inline - 内联查询">
<Page id="inline/overview" name="@inline_query 内联查询简介" />
@ -21,4 +22,7 @@
</Chapter>
<Page id="trusted" name="可信成员" />
<Page id="note-todo" name="note::本说明书进度,以及待修整的部分" />
<Chapter name="&lt;small&gt;资料库&lt;/small&gt;">
<Page id="command/encrypt-example" name="command/encrypt-example.png" />
</Chapter>
</Book>

View File

@ -0,0 +1,8 @@
# command/encrypt-example.png
![an example shows how to encrypt a text message](./encrypt-exapmle.png)
<small>an example shows how to encrypt a text message</small>
```base64
YmFzZTY0LCBiNjQKYmFzZTY0dXJsLCBiYXNlNjR1LCBiNjR1CmJhc2U2NGRlY29kZSwgYmFzZTY0ZCwgYjY0ZApiYXNlNjR1cmwtZGVjb2RlLCBiYXNlNjR1ZCwgYjY0dWQKc2hhMQpzaGEyNTYKc2hhNTEyCm1kNQotLS0KdXBwZXJjYXNlLCB1cHBlciwgdSAoc2hhMS9zaGEyNTYvc2hhNTEyL21kNSBvbmx5KQ==
```

BIN
command/encrypt-exapmle.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

79
command/encrypt.md Normal file
View File

@ -0,0 +1,79 @@
# /encrypt
> > `<algorithm> [(uppercase)]` <u><i>reply_to(text)</i></u> | `[l]`
>
> 通过指定算法加密回复的内容 (目前只支持文本)
通过此命令Morny 可以返回一个信息的加密(或解密)后数据。
## usage - 用法
通过使用 `/encrypt <algorithm>` 回复一条消息Morny 即会返回这条消息通过这个算法处理后的结果。
![an example shows how to encrypt a text message](./encrypt-exapmle.png)
<small>一个使用 base64 加密处理一段文字的例子
你可以从[这里](./encrypt-example)找到例子中返回的 base64 文本,来自己尝试解密
</small>
如果是文本消息,则 Morny 会对其中的文本进行处理,然后同样的以文本消息的方式返回通过指定算法加密后的字符串消息。注意**文本消息中的格式会被忽略**
如果是图片或是文件等消息Morny 将会**处理这个消息中的第一个图片/文件**并返回它作为二进制文件通过指定算法后加密的消息字符串。要注意的是Telegram 的一个消息内可能包含多个图片或文件,但 Morny 只能处理第一个!同时,图片或文件消息所附带的文字也会被忽略。
处理文件有两种返回方式:如果是杂凑算法,则会和文本消息一样返回一个文本消息;如果是普通的加密算法,则会返回一个包含加密后信息的文件。
![the /encrypt output the text while using md5, but output a file while using b64](./encrypt-file-out.png)
### algorithms - 支持的算法
<style>
.m {
font-weight: bold;
text-decoration: underline;
}
.a::marker {
color: crimson;
}
.a_u {
color: crimson;
opacity: 0.5;
}
</style>
Morny 目前支持以下算法:
> 每行中的加重显示的名称是算法的全名,其余是这个算法的别称
> 以<span class=a_u>猩红色</span>标识开头的算法是支持使用 [`uppercase`](#uppercase) 参数的杂凑算法
- `base64`{.m}, `b64`
- `base64url`{.m}, `base64u`, `b64u`
- `base64decode`{.m}, `base64d`, `b64d`
- `base64url-decode`{.m}, `base64ud`, `b64ud`
- {.a}`sha1`{.m}
- {.a}`sha256`{.m}
- {.a}`sha512`{.m}
- {.a}`md5`{.m}
你也可以通过对 Morny 使用 `/encrypt l`<small>或者简单是 `/encrypt`</small>来得到这个列表。
### 加密参数
`/encrypt` 命令可以通过加密参数控制如何进行加密过程或是输出加密信息。加密参数应以空格分隔,附加在算法参数的后面,像是 `/encrypt <algo> [param1] [param2]...`
目前仅只持了 [`uppercase`](#uppercase) 加密参数。
#### `uppercase`
> also known as `upper`
> also known as `u`
这个参数使得 Morny 在返回杂凑值的时候使用大写字母书写十六进制数字。
只能用于杂凑算法。
---
## known issue
这个版本虽然在简介里说了 *「目前只支持文本」*,然而它确实的支持了对文件和图片进行处理。
最开始的初版确实是不支持的,不过后来加上了简单的支持后忘记把这句话移掉了。尽管这么说,对于文件的处理(由于 API 复杂性)确实并不能让人满意或是放心。所以如果你遇到了什么问题,还是来积极报告一下以让这个功能更加稳定好用。

View File

@ -64,7 +64,7 @@
</tr>
<tr>
<td><b><code>/encrypt</code></b></td>
<td><b><a href="./encrypt"><code>/encrypt</code></a></b></td>
<td><code>[algorithm] [(uppercase)]</code> with <u><i>reply_to(text)</i></u> | <code>[(l)]</code></td>
<td>通过指定算法加密回复的内容 (目前只支持文本)</td>
</tr>

View File

@ -10,7 +10,7 @@
<div style="font-family: system-emoji">
🟪🟪🟪⬜🟪🟪⬜⬜⬜ ⬜⬜ ⬜⬜
🟪🟪🟪⬜🟪🟪🟪⬜⬜⬜ ⬜⬜ ⬜⬜
⬜⬜🟩🟩
🟧⬜⬜🟧🟧⬜⬜⬜
🟦⬜⬜
@ -27,7 +27,7 @@
- [ ] `/event_hack`
- [x] ~~`/nbnhhsh`~~
- [x] ~~`/ip` `/whois`~~
- [ ] `/encrypt`
- [x] ~~`/encrypt`~~
- [ ] `/info` <small><code>/version</code> <code>/runtime</code></small>
- [ ] `/jrrp`
- [ ] `/install`