Java 17下使用SpongyCastle出现SHA-256摘要错误如何解决?
问题解决方法
你遇到的是旧版SpongyCastle与Java17模块系统不兼容导致的非法访问错误,以下是可行的解决途径:
优先方案:升级SpongyCastle版本
1.58.0.0是非常老旧的版本,完全未适配Java9及以上的模块系统。将依赖替换为支持Java17的最新稳定版,比如:'com.madgag.spongycastle:core:1.77.0'新版本已适配模块系统,能从根源解决访问权限问题。
临时兼容方案(不推荐长期使用)
如果暂时无法升级,可通过添加JVM启动参数放宽模块访问限制:--add-opens java.base/java.security=ALL-UNNAMED --add-opens java.base/sun.security.provider=ALL-UNNAMED该参数允许未命名模块(你的应用)访问Java基础模块的内部API,但后续Java版本可能会彻底禁用这类访问。
模块化项目额外配置
若你的应用是模块化项目(使用module-info.java),升级SpongyCastle后,需要在模块声明中添加依赖:requires org.spongycastle.core;
内容的提问来源于stack exchange,提问作者Muba
相关产品推荐
相关产品推荐

