DOTNET 运行AESGCM程序 ON MACOS(错误ALGORITHM ‘AESGCM’ IS NOT SUPPORTED ON THIS PLATFORM)

错误Algorithm ‘AesGcm’ is not supported on this platform.

如果使用了aes-gcm的dotnet程序会在macos上报错
AesGCM是一个非常流行的对称加密算法,所以对这个报错还是很惊讶的,一开始以为是dotnet core 适配apple sillicon的问题,查阅文档后发现原来macos都有这个适配错误。Mac的安全策略不允许第三方程序调用系统的加密接口,所以只能使用第三方的加密库。这里真的要喷一下微软,既然不可以用那就给出解决方案么,让我复制黏贴一下不好么。正好在前面解决dotnet5在apple sillicon下时碰到过openssl的配置问题,传入openssl arm的lib路径,问题解决,下面是我用的最新版,其他版本的修改相应路径即可

运行环境添加:DYLD_LIBRARY_PATH=/opt/homebrew/opt/openssl@3/lib

参考文档

https://stackoverflow.com/questions/68096654/no-usable-version-of-libssl-was-found-on-apple-silicon-m1-mac
https://docs.microsoft.com/en-us/dotnet/standard/security/cross-platform-cryptography

作者:KKcat
    
个人博客:http://jinzhao.me/
    
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/jinzhao/p/15674871.html