logo
Roar · 兽音译者兽音译者 · 文字加密工具
首页加解密友链API 文档关于
切换主题
{ }

公开 API · v1

把 兽音魔法
装进你自己的应用里

三个端点,零鉴权,统一响应包装。 从命令行的 curl到浏览器的 fetch, 每段示例都即拷即用。

加密解密选项错误码
Base URL

所有路径都以本站根域为前缀。下方 cURL 示例 会自动替换为你正在访问的域名。

https://roar.dearlicy.com

统一响应包装

所有响应使用 { ok, data | error } 包装,错误带 code 与 message。

无需鉴权

公开接口对所有人开放;含密钥算法可在请求体里附带自带 key(最长 256)。

受全局策略保护

受全局 IP 黑白名单与每分钟限流约束;策略可在管理后台「安全策略」中调整。

CORS 已开放

响应携带 CORS 头,允许浏览器直接跨域调用,便于前端 / 小程序 / 插件集成。

三个公开端点

按编号顺序阅读即可完整覆盖加 / 解 / 查能力。

Endpoints
01
POST/api/public/encrypt

加密接口

用指定字符集 + 算法把明文编码成兽音密文。

请求体
字段类型必填说明
textstring必填明文,长度 1–20000
charsetIdstring必填字符集 ID,可由 /api/public/options 获取
algorithmIdstring必填算法预设 ID
keystring可选可选;含密钥算法(KEYPERM/STREAMXOR/VIGENERE/RC4/AESGCM)支持自带密钥(最长 256)
cURL
bash
curl -X POST https://roar.dearlicy.com/api/public/encrypt \
  -H "Content-Type: application/json" \
  -d '{
    "text": "你好,秘密",
    "charsetId": "<charsetId>",
    "algorithmId": "<algorithmId>"
  }'
fetch
javascript
const res = await fetch('/api/public/encrypt', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    text: '你好,秘密',
    charsetId: '<charsetId>',
    algorithmId: '<algorithmId>',
  }),
});
const json = await res.json();
console.log(json.data.cipher);
响应示例
json
{
  "ok": true,
  "data": {
    "cipher": "嗷呜嗷嗷呜呜嗷嗷……",
    "algoType": "RAW",
    "algoName": "经典原始",
    "charsetName": "经典嗷呜",
    "durationMs": 3
  }
}
02
POST/api/public/decrypt

解密接口(智能嗅探)

只需粘贴密文,自动识别字符集与算法;含密钥算法在缺密钥时返回 needKey 提示。

请求体
字段类型必填说明
cipherstring必填密文,长度 1–200000
keystring可选可选密钥;algoType 为 KEYPERM/STREAMXOR/VIGENERE/RC4/AESGCM 时需要
cURL
bash
curl -X POST https://roar.dearlicy.com/api/public/decrypt \
  -H "Content-Type: application/json" \
  -d '{ "cipher": "嗷呜嗷……", "key": "可选密钥" }'
fetch
javascript
const res = await fetch('/api/public/decrypt', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ cipher: '嗷呜嗷……' }),
});
const json = await res.json();
if (json.data.needKey) {
  // 提示用户输入密钥后再次调用
} else {
  console.log(json.data.text);
}
响应示例
json
{
  "ok": true,
  "data": {
    "text": "你好,秘密",
    "algoType": "RAW",
    "charsetName": "经典嗷呜",
    "durationMs": 4
  }
}

// 当算法需要密钥而未提供时:
{
  "ok": true,
  "data": {
    "needKey": true,
    "algoType": "KEYPERM",
    "algoHint": "KEYPERM"
  }
}
03
GET/api/public/options

获取可用字符集与算法

查询启用状态下的字符集与算法预设列表,用于驱动前端选择。

cURL
bash
curl https://roar.dearlicy.com/api/public/options
fetch
javascript
const res = await fetch('/api/public/options');
const { data } = await res.json();
console.log(data.charsets, data.algorithms);
响应示例
json
{
  "ok": true,
  "data": {
    "charsets": [
      { "id": "...", "name": "经典嗷呜", "c0": "嗷", "c1": "呜", "c2": "啊", "c3": "~", "isDefault": true }
    ],
    "algorithms": [
      { "id": "...", "name": "经典原始", "type": "RAW", "isDefault": true, "needKey": false }
    ]
  }
}

常见错误码

Errors

所有错误统一通过 error.code 返回,可据此做差异化处理(例如限流时退避,IP 拒绝时引导联系管理员)。

RATE_LIMITED

触发限流;data.resetAt 为下次可请求时间戳。

IP_BLACKLISTED

当前 IP 已被加入全局黑名单。

IP_NOT_WHITELISTED

当前 IP 不在白名单中(白名单模式启用时)。

BAD_REQUEST

参数缺失或字段不合法(详见 message)。

DECODE_FAIL

密文无法被识别——字符集未启用或密文损坏。

还想了解更多?

先在浏览器里玩一玩,再嵌进你的项目

打开「立即体验」可即时调试任意算法 / 字符集组合;如果你想了解 Roar 的设计理念与开源协议, «关于» 页有更多故事。

立即体验关于本项目

友情链接

申请友链 / 查看全部 →
  • Next.js
  • Tailwind CSS
  • Prisma
© 2026 Roar · 兽音译者·友情链接
Made with for fun