惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google Online Security Blog
Google Online Security Blog
S
Security @ Cisco Blogs
Recent Commits to openclaw:main
Recent Commits to openclaw:main
人人都是产品经理
人人都是产品经理
The Hacker News
The Hacker News
W
WeLiveSecurity
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
博客园 - 司徒正美
雷峰网
雷峰网
L
LINUX DO - 最新话题
博客园 - 叶小钗
云风的 BLOG
云风的 BLOG
The Last Watchdog
The Last Watchdog
V2EX - 技术
V2EX - 技术
S
Security Affairs
有赞技术团队
有赞技术团队
月光博客
月光博客
T
Threatpost
T
Tor Project blog
O
OpenAI News
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
V
V2EX
Know Your Adversary
Know Your Adversary
Project Zero
Project Zero
博客园 - 三生石上(FineUI控件)
D
Docker
AWS News Blog
AWS News Blog
AI
AI
P
Proofpoint News Feed
K
Kaspersky official blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
D
Darknet – Hacking Tools, Hacker News & Cyber Security
www.infosecurity-magazine.com
www.infosecurity-magazine.com
S
Securelist
F
Fortinet All Blogs
F
Full Disclosure
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
量子位
Hacker News - Newest:
Hacker News - Newest: "LLM"
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
P
Palo Alto Networks Blog
Cyberwarzone
Cyberwarzone
Cisco Talos Blog
Cisco Talos Blog
美团技术团队
N
News | PayPal Newsroom
T
The Blog of Author Tim Ferriss
MyScale Blog
MyScale Blog

博客园 - lzhdim

JavaScript 中的原型与继承 1分钟查清局域网所有IP 20260714 - 个人小作品更新 WorkBuddy 完整教程手册 专为AI而生的企业级QLC SSD!长江存储PE501 61.44TB评测:超过1PB的写入测试 32GB显存才是第一生产力!英特尔锐炫 Pro B70评测:中小企业AI降本神器 JavaScript中的this关键字 C#开发的PopoSaver泡泡屏保应用 - 开源研究系列文章 - 个人小作品 6天不间断测试告诉你到底有多省电!米家空调巨省电大1.5匹评测:制冷峰值功率不超过500W 三倍双摄加持 + D-Log 2 曲线!大疆DJI OSMO Pocket 4P全面评测:补齐短板,化身口袋电影机 晶栈4.0闪存立威!长江存储致态TiPro9000 2TB SSD评测:缓外写入超4GB/s独一档 C# 多线程同步机制详解:原理、使用与性能对比 JavaScript作用域与闭包讲解 最受欢迎的 10 大免费 AI 工具 六种AI生意,从月入一万到月入十万 5个国产大模型实测对比2026:DeepSeek、Kimi、豆包、通义、智谱哪个好用 豆包、元宝、千问、Kimi、DeepSeek,这么多AI软件,到底该用哪个? 微软免费开源了一个 Linux 操作系统,没错!是微软出品 一次看懂5种咖啡冲煮方式:意式、手冲、法压、冷萃、摩卡壶到底有什么区别 120个 实用CSS 技巧汇总合集 JavaScript运算符与表达式详解 C#开发的ScreenSaver屏保应用 - 开源研究系列文章 - 个人小作品 WinForm 中跨线程操作 UI 的解决方案 JavaScript变量与数据类型详解 苹果良心!iOS 27适配设备公布:30款机型 7年前的iPhone 11还能升级 C++图形用户界面开发入门 10个不该免费的GitHub神级项目 JavaScript语言全面概述:从历史到现代实践 一张图看懂常见咖啡 C盘空间多出来4GB:谷歌服软 Chrome本地AI大模型可禁用、删除了 96GB显存运行230B大模型!七彩虹灵创K16笔记本评测:160W性能释放 AMD锐龙AI Max+ 395加持全能移动AI工作站 AI PC最强存储搭档!雷克沙NM1090 PRO 8TB固态评测:14400MB/s满速不缩水 C#已经不是当年的C#了——我用它写了个微秒级数据库引擎 EasyTool:轻量全能的 .NET 工具类库 SQL 入门 17:MySQL 数据类型:从字符串到 JSON 的全面解析 SQL 入门 16:SQL 事务隔离级别与死锁解析(易懂) 原相3955XM+TL3228主控!小米电竞鼠标2全面评测:原生双8K究竟有多强 PCIe 4.0火力全开:闪迪奥丁马仕GX 7100 NVMe SSD上手 超乎预料的千元级电竞主板!七彩虹iGame B850M Ultra-OC V14主板评测 SQL 入门 15:SQL 事务:从 ACID 到四种常见的并发问题 名人 - 我的闪存 C#性能优化技巧 SQL 入门 14:SQL 触发器与事件:自动化数据处理 38个实用的JavaScript 技巧 一款基于 .Net WinForm 开发的节点编辑器,纯 GDI 实现,体积仅 100+Kb SQL 入门 13:SQL 存储过程与函数:封装逻辑与参数处理 49个 JavaScript 代码快捷技巧,让你在 2026 年成为代码高手 20260503 - 个人小作品更新 SQL 入门 12:SQL 视图:创建、修改与可更新视图 C#如何实现Windows系统桌面截图功能... 6999元AMD新旗舰首测!锐龙9 9950X3D2性能解禁:这颗U根本不是给游戏玩家造的 SQL 入门 11:日期时间格式化、IF、CASE的使用 基于C#的校时类库的实现及使用 - 开源项目研究文章 39g无打孔+原生双8K!雷柏VT0 Air MAX / VT3s Air MAX鼠标评测:轻到飞起还快到极致 WinForm 中控件自适应窗体变化 20260413 - 个人小作品更新 SQL 入门 10:SQL 内置函数:数值、字符串与时间处理 最强麒麟芯+自研风冷 华为Mate80 Pro MAX 风驰版全面评测:涡轮散热封神 性能稳到骨子里 WiFi8核心技术特性与性能分析 2026年最新AMD/Intel桌面CPU排名:多线程、单线程、游戏性能谁才是第一 用DG对C盘进行扩容 - 初学者系列 - 学习者系列 还有比它更强的OEM固态吗!长江存储PC550 1TB评测:不用散热片也能满速的PCIe 5.0 SSD SharpCompress:跨平台的 C# 压缩与解压库 SQL 入门 9:SQL 高级子查询:ANY、EXISTS 与多位置应用 盘点接私活20个最实用的 .NET 开源项目 C#中加载图片的资源释放 20260404 - 个人小作品更新 开启iphone的墙纸玻璃效果 可能是综合性能最强的PCIe 5.0 SSD!铠侠EXCERIA PRO G2 2TB评测:AIDA64线性写入全程不掉速 SQL 入门 8:SQL 复杂查询:子查询与ALL关键词 性能最强的锐龙AI 9 H 465轻薄本!华硕无畏Pro16锐龙版2026评测 4盘RAID 0读写超1100MB/s!希捷酷狼Pro 32TB硬盘评测:百万文件快速完成备份 项目(Project)、项目集(Program)、项目组合(Portfolio) SQL 入门 7:SQL 聚合与分组:函数、GROUP BY 与 ROLLUP
Masuit.Tools:这个 C# 工具库
lzhdim · 2026-05-10 · via 博客园 - lzhdim

写一个验证码生成,网上找半天代码,复制粘贴,调半天;要做个文件压缩,NuGet 搜一圈,不知道选哪个;想获取系统硬件信息,WMI 查询写得头疼……

每次都是重复造轮子,每次都在想:为什么没有一个"什么都有"的工具库?

直到我发现了 Masuit.Tools。

它到底有多"全"?

先看一组数字:

  • 488 个 C# 文件
  • 14 个核心功能模块
  • 8 个独立 NuGet 包
  • 支持 .NET Framework 4.5 到 .NET 10

这不是一个"专注做一件事"的库,这是一个"你能想到的常用功能都有"的工具箱。

字符串处理? 有。验证码生成(带图片)、SimHash 文本相似度、任意进制转换、模板引擎。

加密安全? 有。DES/AES/RSA 加密解密、MD5/SHA/CRC 哈希、RSA 密钥生成(支持 PKCS1/PKCS8/XML 三种格式)、零宽字符编解码。

文件操作? 有。文件签名检测(判断文件真实类型)、7z/ZIP/RAR 压缩解压、INI 文件读写、文本编码自动检测。

网络下载? 有。多线程下载器、断点续传、部分下载、FTP 客户端。

硬件信息? 有。CPU/内存/磁盘信息、系统温度监测、网卡 MAC 地址、进程 CPU/内存占用率,甚至集成了 Windows Defender 扫描。

图像处理? 有。图像哈希(AverageHash/PerceptualHash/DctHash)、图像水印、裁剪缩放、颜色转换(RGB/Lab/HSL/CMYK)、颜色差异计算。

数据库? 有。DataTable 转 List、动态 SQL 生成、EntityFrameworkCore 扩展。

日期时间? 有。中国农历转换、周数计算、时间段相交判断、天干地支计算。

数学计算? 有。坐标转换(WGS84/GCJ-02/BD-09,GPS 坐标纠偏)、权重随机筛选、百分位数计算、雷达图生成。

LINQ 扩展? 有。表达式树组合(And/Or/AndIf/OrIf),动态构建查询条件。

HTML 处理? 有。XSS 防护(HtmlSanitizer)、HTML 标签清理、自定义清理规则。

验证? 有。Email 验证(支持 DNS 检查)、手机号/座机号验证、IP 地址验证、身份证号验证、企业统一社会信用代码验证。

系统工具? 有。SnowFlake 分布式 ID 生成、并发集合(ConcurrentHashSet/ConcurrentHashQueue)、定长队列、大内存流(支持 1TB)、高精度计时器。

树形结构? 有。ITree 接口、Tree 泛型类、树形扩展方法(Filter/Flatten/ToList)。

我列了这么多,还只是一部分。

这就是为什么我说它被低估了——因为大多数人根本不知道它能做这么多事。

三个让我印象最深的功能

1. 文件签名检测:不再被文件扩展名骗

你有没有遇到过这种情况:一个 .jpg 文件,打开却是个 .exe;一个 .txt 文件,实际上是个 .zip

文件扩展名是可以随便改的,但文件头部的"魔数"(Magic Number)是改不了的。

Masuit.Tools 的 FileSignatureDetector 可以通过读取文件头部字节,判断文件的真实类型:

var realType = FileSignatureDetector.DetectFileType("suspicious.jpg");
// 返回:FileType.Exe

支持几十种常见文件格式,包括图片、视频、压缩包、Office 文档、可执行文件等。

这个功能在文件上传场景特别有用——不要相信用户上传的文件扩展名。

2. 大内存流:突破 2GB 限制

.NET 的 MemoryStream 有一个硬伤:最大只能存 2GB 数据(因为内部用的是 byte[],数组长度上限是 int.MaxValue)。

如果你要处理超大文件(比如视频转码、大数据导出),MemoryStream 就不够用了。

Masuit.Tools 提供了 LargeMemoryStream,突破了这个限制:

usingvar stream = new LargeMemoryStream();
// 可以写入 1TB 数据

内部实现是用多个小块拼接,对外接口和 MemoryStream 一样,无缝替换。

这是那种"平时用不到,用到了就救命"的功能。

3. 坐标转换:GPS 坐标纠偏

如果你做过地图相关的开发,一定知道中国的坐标系有多乱:

  • GPS 原始坐标(WGS84)
  • 国测局坐标(GCJ-02,火星坐标)
  • 百度坐标(BD-09)

不同地图服务商用的坐标系不一样,直接用会偏移几百米。

Masuit.Tools 提供了三种坐标系的互相转换:

// GPS 坐标转火星坐标
var gcj = CoordinateConverter.WGS84ToGCJ02(lat, lng);

// 火星坐标转百度坐标
var bd = CoordinateConverter.GCJ02ToBD09(gcj.Lat, gcj.Lng);

不用再去找那些不知道对不对的转换公式了。

模块化设计:按需引用

Masuit.Tools 不是一个"全家桶"包,而是拆成了 8 个独立的 NuGet 包:

  • Masuit.Tools.Core - .NET Core 推荐
  • Masuit.Tools.Abstractions - 通用基础包
  • Masuit.Tools.Net - .NET Framework 4.6.1+
  • Masuit.Tools.Net45 - .NET Framework 4.5 特供版
  • Masuit.Tools.AspNetCore - ASP.NET Core 专用(断点续传 FileResult、ModelBinder 等)
  • Masuit.Tools.Excel - Excel 导入导出专用
  • Masuit.Tools.NoSQL.MongoDBClient - MongoDB 操作封装
  • Masuit.Tools.DigitalWatermarker - 数字水印(基于 OpenCV)

你只需要引用你需要的包,不会把整个工具库都拉进来。

比如你只想用 Excel 导出功能,就只装 Masuit.Tools.Excel;如果你要用 MongoDB,就装 Masuit.Tools.NoSQL.MongoDBClient

这种设计很克制,不是"要么全要,要么不要"。

代码质量:值得信赖

看一个开源库靠不靠谱,不只看功能,还要看代码质量。

Masuit.Tools 的代码质量让我放心:

完整的 XML 文档注释
每个公开方法都有详细的注释,IDE 里有完整的智能提示。

单元测试覆盖
5 个测试项目,使用 xUnit 框架,覆盖主要功能模块。

持续维护
最新版本 2.5.9.1,持续更新,支持最新的 .NET 版本。

获得 JetBrains 官方支持
这是对开源项目质量的认可。

MIT 开源协议
商业项目可以放心使用,没有法律风险。

实际使用:三个场景

场景一:生成验证码

// 生成 4 位验证码
var code = ValidateCode.CreateValidateCode(4);

// 生成验证码图片(带干扰线和噪点)
var image = ValidateCode.CreateValidateGraphic(code);

// 返回给前端
return File(image, "image/png");

不用再去找那些年代久远的验证码生成代码了。

场景二:多线程下载大文件

var downloader = new MultiThreadDownloader(
    url: "https://example.com/large-file.zip",
    savePath: "D:\\download\\file.zip",
    threadCount: 8
);

downloader.ProgressChanged += (sender, e) => {
    Console.WriteLine($"进度:{e.ProgressPercentage}%");
};

await downloader.DownloadAsync();

支持断点续传,下载中断后可以继续。

场景三:动态构建查询条件

Expression<Func<User, bool>> where = u => true;

if (!string.IsNullOrEmpty(name))
{
where = where.And(u => u.Name.Contains(name));
}

if (age.HasValue)
{
where = where.And(u => u.Age == age.Value);
}

var users = dbContext.Users.Where(where).ToList();

不用写一堆 if-else 拼接 SQL 了。

为什么说它被低估?

因为大多数 C# 开发者根本不知道它的存在。

你去 GitHub 搜"C# tools",排在前面的都是国外的库。Masuit.Tools 是国人开发的,文档是中文的,功能针对国内开发场景(比如农历转换、身份证验证、坐标纠偏),但知名度远不如那些国外库。

这不是因为它不够好,而是因为它不够"出名"。

如果你是 C# 开发者,强烈建议你把它加到你的工具箱里。

不是说它能解决所有问题,而是说——当你遇到那些"常见但琐碎"的需求时,它能帮你省下大量时间。

如何开始?

# 安装核心包
dotnet add package Masuit.Tools.Core

# 或者安装 ASP.NET Core 专用包
dotnet add package Masuit.Tools.AspNetCore

官方文档:https://www.masuit.tools

GitHub:搜索 Masuit.Tools