使用Snowflake FIPS驱动连接时遇Module checksum失败问题求助
你使用的依赖如下:
<dependency> <groupId>net.snowflake</groupId> <artifactId>snowflake-jdbc-fips</artifactId> <version>3.16.1</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcpkix-fips</artifactId> <version>1.0.5</version> </dependency>
运行时报错:
Exception in thread "main" org.bouncycastle.crypto.fips.FipsOperationError: org.bouncycastle.crypto.fips.FipsOperationError: Module checksum failed: expected [9f6751f059ab42f7d83e4e107881438036787e1e1821cd23a53c4b8181cc300f] got [d337b151b2df89731bc175d9a9f47b4d5103dba8b58f00b7534958368db0bc36]
以下是具体解决步骤:
修正依赖版本兼容性:Snowflake JDBC FIPS驱动对BouncyCastle FIPS组件版本有严格要求,3.16.1版本的
snowflake-jdbc-fips对应的bcpkix-fips版本应为1.0.2,而非1.0.5。替换为正确的依赖配置:<dependency> <groupId>net.snowflake</groupId> <artifactId>snowflake-jdbc-fips</artifactId> <version>3.16.1</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcpkix-fips</artifactId> <version>1.0.2</version> </dependency>清理本地依赖缓存:本地仓库可能存在版本冲突或损坏的依赖包,执行以下命令强制刷新:
- Maven:
mvn clean install -U - Gradle:
./gradlew clean build --refresh-dependencies
- Maven:
手动删除损坏依赖:如果缓存刷新后问题依旧,手动删除本地仓库中对应版本的BouncyCastle包(例如Maven路径为
~/.m2/repository/org/bouncycastle/bcpkix-fips/1.0.2),重新构建项目拉取完整依赖。排查FIPS模式配置:确保JVM未加载非FIPS合规的加密组件,避免项目中同时引入非FIPS版本的BouncyCastle依赖,防止类加载冲突。
内容的提问来源于stack exchange,提问作者Jack

