MooTool 1.7.3:把散落各处的开发小工具收进一个窗口

2026-06-10 17 预计阅读时间: 1 分钟
来源: oschina.net AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:7 分钟

做开发的人桌面常开一堆零散工具——一个 JSON 格式化页面、一个加密解密网站、一个截图软件、一个 Markdown 编辑器……切换成本不高,但累积起来很烦。MooTool 用 Java 把这些常用功能收拢到一个桌面应用里,1.7.3 版本又塞进了几样新东西,值得看看。

这次更新加了什么

新版本的核心变化集中在几个方向:

随手记终于能预览了。 之前的随手记只写纯文本,现在支持 Markdown 格式预览,还能直接插入图片。对于习惯随手记命令、配置片段的开发者来说,这比开一个专门笔记应用轻得多。

图片助手补齐了 OCR。 截图、压缩、加水印这些之前就有,1.7.3 加上了 OCR 文字识别。从截图直接提取文本,省去再开一个 OCR 工具的步骤。

加解密支持国密算法。 国密(SM2/SM3/SM4)在金融、政务场景越来越常见,但主流加密工具很少直接内置。MooTool 现在把国密和常规 AES/RSA 放在一起,切换算法只需下拉选择。

新增 Protobuf 工具。 Protobuf 的 .proto 文件编写和消息编解码调试一直缺好用的桌面工具,这次补上了。

其余改进包括:翻译功能完善、网络/IP 模块增加 Whois 查询、调色板支持颜色相交与取反运算。

实际场景:国密加解密怎么用

国密算法在不少国内项目里已经是硬性要求,但开发阶段找工具验证加密结果并不方便。下面用一个最小 Java 示例演示 SM4 加解密流程——这正是 MooTool 内置的功能,你可以用它快速对照验证自己的代码输出是否正确。

import org.bouncycastle.jce.provider.BouncyCastleProvider;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.security.Security;
import java.util.Base64;

public class SM4Demo {

    static {
        // BouncyCastle 提供国密算法实现
        Security.addProvider(new BouncyCastleProvider());
    }

    public static String encrypt(String plaintext, String keyHex) throws Exception {
        byte[] keyBytes = hexToBytes(keyHex);
        SecretKeySpec keySpec = new SecretKeySpec(keyBytes, "SM4");
        Cipher cipher = Cipher.getInstance("SM4/ECB/PKCS5Padding", "BC");
        cipher.init(Cipher.ENCRYPT_MODE, keySpec);
        byte[] encrypted = cipher.doFinal(plaintext.getBytes("UTF-8"));
        return Base64.getEncoder().encodeToString(encrypted);
    }

    public static String decrypt(String ciphertextB64, String keyHex) throws Exception {
        byte[] keyBytes = hexToBytes(keyHex);
        SecretKeySpec keySpec = new SecretKeySpec(keyBytes, "SM4");
        Cipher cipher = Cipher.getInstance("SM4/ECB/PKCS5Padding", "BC");
        cipher.init(Cipher.DECRYPT_MODE, keySpec);
        byte[] decrypted = cipher.doFinal(Base64.getDecoder().decode(ciphertextB64));
        return new String(decrypted, "UTF-8");
    }

    private static byte[] hexToBytes(String hex) {
        int len = hex.length();
        byte[] data = new byte[len / 2];
        for (int i = 0; i < len; i += 2) {
            data[i / 2] = (byte) ((Character.digit(hex.charAt(i), 16) << 4)
                    + Character.digit(hex.charAt(i + 1), 16));
        }
        return data;
    }

    public static void main(String[] args) throws Exception {
        // SM4 密钥必须是 16 字节(32 位十六进制)
        String key = "0123456789abcdeffedcba9876543210";
        String text = "Hello, 国密SM4!";

        String encrypted = encrypt(text, key);
        System.out.println("加密结果 (Base64): " + encrypted);

        String decrypted = decrypt(encrypted, key);
        System.out.println("解密结果: " + decrypted);
    }
}

运行前需要引入 BouncyCastle 依赖:

<!-- Maven 依赖 -->
<dependency>
    <groupId>org.bouncycastle</groupId>
    <artifactId>bcprov-jdk18on</artifactId>
    <version>1.78</version>
</dependency>

跑完之后,把密钥和 Base64 输出贴进 MooTool 的加解密模块,选 SM4/ECB,看两边结果是否一致——这就是它最直接的用法:快速验证你的加密实现有没有写错

Protobuf 工具的调试价值

gRPC 和微服务场景下,Protobuf 消息的二进制调试一直是个痛点。你拿到一段编码后的字节,肉眼读不出字段值;写 .proto 文件时也要反复确认字段编号和类型是否对齐。

MooTool 新增的 Protobuf 工具覆盖了两个方向:

  • 编写 .proto 定义:内置编辑器,不用另开 IDE。
  • 消息编解码验证:输入二进制数据或 JSON,对照 .proto 定义做双向转换。

一个典型调试流程:服务端日志打出了一串 Protobuf 编码的 hex 数据,你把它粘贴进 MooTool,加载对应的 .proto 文件,立刻看到每个字段的值——比写一段临时反序列化代码快得多。

谁适合装一个

MooTool 的定位不是替代专业工具,而是把高频低复杂度的操作收拢。适合这些情况:

  • 经常需要格式化 JSON、计算 Hash、做 Base64 转换,不想每次搜在线工具。
  • 项目要求国密算法,需要随手验证加密结果。
  • 用 Protobuf/gRPC,需要快速解码二进制消息。
  • 截图后要加水印或 OCR 提取文字,不想开三个软件。

不适合的场景也很明确:如果你只在单一领域深耕(比如只做图片处理),专业工具仍然更强。MooTool 的优势是覆盖面广、切换零成本

安装和上手

MooTool 基于 Java 开发,跨平台运行。从项目发布页下载对应版本,本地有 JRE 即可启动。界面是模块化布局——左侧功能列表,右侧操作区,每个模块独立,不需要配置就能用。

一个建议:先把加解密和随手记两个模块试起来,这两个在日常开发中使用频率最高,能最快感受到"不用再开浏览器找工具"的便利。


相关推荐