技术

7 篇文章
技术
浅谈电子邮件伪造

浅谈电子邮件伪造

作者探讨了电子邮件发信人伪造的技术原理与实现方法。文章指出,SMTP协议允许发信方任意声明发件人地址,这是伪造邮件的基础。为防范此类攻击,业界建立了SPF、DKIM和DMARC等认证机制,其中SPF记录通过域名白名单验证发件服务器IP。作者使用swaks工具进行测试,发现直接伪造有SPF记录的域名会被拒收,但通过代发机制可绕过验证,尽管邮件会显示"由xxx代发"。测试还揭示国内邮箱服务存在缺陷:QQ邮箱对无SPF记录的域名和子域名验证不严,网易邮箱甚至不校验SPF记录,仅显示伪造提示。作者建议使用Gmail或Proton Mail等更安全的邮箱服务。

OOP 设计模式之七大原则

OOP 设计模式之七大原则

作者系统阐述了面向对象编程的七大原则,包括SOLID(单一职责、开闭、里氏替换、接口隔离、依赖倒置)、组合/聚合复用和迪米特法则。这些原则强调职责分离、扩展性、接口设计、依赖抽象和最小化耦合,旨在提升代码的可维护性、可测试性和灵活性。作者通过C#示例展示了违反原则的常见错误,并指出正确实现应依赖接口、采用组合复用和限制对象交互范围。同时,作者提醒开发者需根据项目规模灵活应用原则,避免过度抽象导致代码冗余,确保设计平衡实用性与规范性。

C# 之委托与事件

C# 之委托与事件

作者在文章中详细阐述了委托和事件的概念及其在编程中的应用。委托是一种类型安全的函数指针,封装方法引用,支持动态调用、回调机制和多路广播,确保编译时类型安全。事件基于委托实现发布/订阅模式,解耦发布者和订阅者,通过+=/-=运算符管理订阅。内置委托类型如Action、Func和Predicate简化开发,示例场景包括文件下载进度、按钮点击事件、自定义排序策略和定时任务调度。与其他语言对比,Python需手动维护回调列表,Java依赖接口和监听器,而C#的委托和事件提供更简洁高效的实现。

C# 语法糖与特性介绍

C# 语法糖与特性介绍

作者在文章中系统介绍了C#编程语言的核心特性,涵盖从C# 3.0到C# 11.0的关键功能,包括隐式类型推断、目标类型、对象初始化器、匿名类型等,这些特性通过简化变量声明和初始化提升代码可读性。文章详细探讨了索引与范围、本地函数、Lambda表达式(涉及委托结合、LINQ用法及表达式树),以及字符串处理如插值和逐字字符串。扩展方法允许在不修改原类型的情况下添加功能,而模式匹配提供了强大的类型检查和值匹配能力,涵盖基础、过滤组合及结构化模式。异步编程利用async/await实现同步风格的异步操作,ref/out/in关键字支持不同参数传递方式,params关键字则简化可变数量参数处理。作者通过代码示例展示了这些特性的实际应用,旨在帮助开发者高效编写C#代码。

C# 语法糖之 LINQ

C# 语法糖之 LINQ

作者阐述了LINQ(Language-Integrated Query),一种将查询功能直接集成到C#语言的技术,使查询成为一流语言构造,支持类型检查和IntelliSense,统一了不同数据源的查询方式。基本语法包括查询表达式和方法链,作者偏好后者。执行机制分为延迟执行(在枚举时执行)和即时执行(如聚合操作)。操作符涵盖过滤、投影、排序、分组、聚合等分类。提供程序如LINQ to Entities实现IQueryProvider接口,负责表达式树翻译到目标数据源。性能优化建议包括缓存结果、合理分批加载、最小化投影字段、表达式复用和谨慎使用PLINQ。

导出QQ所有超级表情包(共144张)

导出QQ所有超级表情包(共144张)

作者发现QQ超级表情为Lottie动画格式,但腾讯未全部公开,需通过特定路径查找。初始在全局文件夹未果,最终在账号目录的D:\Tencent Files\QQ\账号\nt_qq\nt_data\Emoji\BaseEmojiSyastems\EmojiSystermResource\qlottie中定位到目标表情包。借助工具批量导出为.gif,提供下载链接及源文件,说明导出质量为70%、速度3.2x,需更高画质可自行使用工具处理。

[开源] 服务器智能风扇调速工具

[开源] 服务器智能风扇调速工具

作者开发的 FanX 是一款基于 .NET 8 和 Blazor 的服务器风扇控制与监控平台,专为戴尔服务器设计(支持 BMC 设备也可使用)。该平台通过实时监控设备运行状态,并根据自定义或智能规则动态调节风扇转速,在确保系统温度和功率安全的同时有效降低噪音。核心功能包括实时监控功率、风扇转速、CPU温度及主板温度,支持多级温度-转速映射曲线的智能控制,提供企业微信机器人、Webhook等多种通知渠道。作者还设计了灵活的规则配置系统,允许基于不同温度条件为特定风扇设置精确转速,相比服务器自带自动调速更为精细。项目支持 Docker 部署,提供中英文界面和深色/浅色主题切换,满足不同用户需求。

C# Lottie 动画控件库

C# Lottie 动画控件库

作者开发了一个支持WPF和Avalonia的.NET平台Lottie动画库并已开源。该库基于SkiaSharp实现,旨在解决.NET桌面应用中Lottie动画支持有限的问题。提供完整的Lottie JSON格式支持,包含播放控制、逐帧操作、PNG导出、外部控制模式等核心功能,并支持多种文件格式。通过硬件加速渲染、自动内存管理和可配置帧率实现性能优化。库适合Loading动画、UI交互反馈、数据可视化等场景,为.NET开发者提供了功能完善的Lottie动画解决方案。

Could not start 'pnpm.cmd' 报错解决

Could not start 'pnpm.cmd' 报错解决

在构建过程中出现“Could not start 'pnpm.cmd'”错误,提示系统无法找到指定文件,导致构建失败。经排查,问题根源在于系统中缺少pnpm.cmd文件。解决方法是通过cmd命令执行`where pnpm`定位pnpm的安装路径,找到对应的pnpx.cmd文件后,将其复制一份并重命名为pnpm.cmd,即可解决该问题。此操作能有效补充缺失的命令文件,使构建工具能够正常识别并启动pnpm命令。

[开源] Tgs(电报表情包) / Lottie 格式转换工具客户端

[开源] Tgs(电报表情包) / Lottie 格式转换工具客户端

作者开发了一款名为LottieViewConvert的跨平台客户端工具,用于高效转换Lottie动画和Telegram贴纸文件。该工具支持多种输出格式,包括GIF、WebP、APNG、MP4、MKV、AVIF和WebM,具备批量处理、自定义输出设置、并发任务加速等强大功能。用户可直接解析和下载Telegram贴纸包,调整播放速度、帧率、分辨率和转换质量。工具采用现代化界面设计,依赖项自动安装,简化了设置流程。支持Windows、macOS和Linux系统,解决了此前Telegram机器人转换效率低、文件大小限制等问题,为用户提供更高效、更灵活的动画文件转换解决方案。