DOTNET 运行AES-GCM程序 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