通过 xml 配置中的 spring 使用 SHA256 时出错
Error when using SHA256 via spring in xml config
我正在尝试将 java.security.MessageDigest 与 spring 一起使用。
Bean 定义...
<spring:bean id="messageDigest" name="messageDigest" class="java.security.MessageDigest" factory-method="getInstance">
<spring:constructor-arg value="${hash.algorithm}"/>
</spring:bean>
这是我使用的豆...
<invoke name="invokeMessageDigestDigest" object-ref="messageDigest" method="digest" methodArguments="#[flowVars.myCustomTextOne]" methodArgumentTypes="byte[]" />
这对我有用。
问题是当我尝试在我的应用程序中的其他地方使用它时......
<invoke name="invokeMessageDigestDigest" object-ref="messageDigest" method="digest" methodArguments="#[flowVars.myCustomTextTwo]" methodArgumentTypes="byte[]" />
我明白了...
Failed to instantiate [java.security.MessageDigest]: Factory method 'getInstance' threw exception; nested exception is java.security.NoSuchAlgorithmException: SHA256 MessageDigest not available
我尝试使用 scope=prototype 为 bean 定义添加一些魔力,因为我认为它可能与 bean 实例化有关,但这并没有解决问题。
任何人都可以帮我解释一下吗?
提前致谢
根据 https://docs.oracle.com/javase/6/docs/technotes/guides/security/StandardNames.html#MessageDigest,算法的正确名称是 SHA-256
。 SHA256 只是 Bouncycastle 库提供的别名
我正在尝试将 java.security.MessageDigest 与 spring 一起使用。
Bean 定义...
<spring:bean id="messageDigest" name="messageDigest" class="java.security.MessageDigest" factory-method="getInstance">
<spring:constructor-arg value="${hash.algorithm}"/>
</spring:bean>
这是我使用的豆...
<invoke name="invokeMessageDigestDigest" object-ref="messageDigest" method="digest" methodArguments="#[flowVars.myCustomTextOne]" methodArgumentTypes="byte[]" />
这对我有用。
问题是当我尝试在我的应用程序中的其他地方使用它时......
<invoke name="invokeMessageDigestDigest" object-ref="messageDigest" method="digest" methodArguments="#[flowVars.myCustomTextTwo]" methodArgumentTypes="byte[]" />
我明白了...
Failed to instantiate [java.security.MessageDigest]: Factory method 'getInstance' threw exception; nested exception is java.security.NoSuchAlgorithmException: SHA256 MessageDigest not available
我尝试使用 scope=prototype 为 bean 定义添加一些魔力,因为我认为它可能与 bean 实例化有关,但这并没有解决问题。
任何人都可以帮我解释一下吗?
提前致谢
根据 https://docs.oracle.com/javase/6/docs/technotes/guides/security/StandardNames.html#MessageDigest,算法的正确名称是 SHA-256
。 SHA256 只是 Bouncycastle 库提供的别名