You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Clean Architecture中Core项目需加密操作,能否依赖NuGet包?

在Clean Architecture中,Core项目是否可以依赖NuGet包?

首先明确Clean Architecture的核心逻辑:Core层是业务规则与领域逻辑的核心,要避免的是依赖业务无关、不稳定或带有外部服务绑定的组件,而非所有外部包。针对你的加密需求,具体可以这么处理:

  • 完全可以依赖官方或可信的加密类NuGet包(比如.NET官方的System.Security.Cryptography相关包)。这类包是经过严格安全审计、处理了侧信道攻击等风险的成熟工具,自己从零实现加密函数才是真正的安全隐患,完全没必要这么做。

  • 若想严格遵循「依赖抽象」的原则,可以在Core层定义加密服务的抽象接口,比如:

    public interface IHashService
    {
        byte[] ComputeSHA256(byte[] input);
        bool VerifySHA256(byte[] input, byte[] hash);
    }
    

    然后在Infrastructure层实现这个接口,具体依赖NuGet包或系统加密库。这种方式既隔离了具体实现,又保证了Core层的纯净性。

  • Clean Architecture禁止的是Core层依赖第三方API、数据库驱动、UI框架这类带有外部服务绑定或易变的组件,而像加密工具这种通用、稳定的基础库,直接在Core层引用完全符合架构要求——它不会让Core层绑定到特定环境,也不会影响Core层的可测试性与独立性。

总结下来:不需要自行实现加密逻辑,合理依赖可信的加密NuGet包是安全且合规的;如果追求极致解耦,用抽象接口隔离实现即可。

内容的提问来源于stack exchange,提问作者Szyszka947

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 10:45:34