赞
踩
- System.err: cn.hutool.crypto.CryptoException: NoSuchAlgorithmException: No provider found for SM4
- System.err: at cn.hutool.crypto.SecureUtil.createCipher(SecureUtil.java:987)
- System.err: at cn.hutool.crypto.symmetric.SymmetricCrypto.init(SymmetricCrypto.java:154)
- System.err: at cn.hutool.crypto.symmetric.SymmetricCrypto.<init>(SymmetricCrypto.java:124)
- System.err: at cn.hutool.crypto.symmetric.SymmetricCrypto.<init>(SymmetricCrypto.java:112)
- System.err: at cn.hutool.crypto.symmetric.SymmetricCrypto.<init>(SymmetricCrypto.java:101)
- System.err: at cn.hutool.crypto.symmetric.SM4.<init>(SM4.java:37)
Sm4加解密,遇到如上的问题,在网上搜了很多资料,乱改一通,跟着添加
compile 'org.bouncycastle:bcpg-jdk16:1.46'
及代码添加
Security.removeProvider(BouncyCastleProvider.PROVIDER_NAME); Security.addProvider(new BouncyCastleProvider());
出现新问题:
- System.err: cn.hutool.crypto.CryptoException: NoSuchAlgorithmException: Provider BC does not provide SM4
- System.err: at cn.hutool.crypto.SecureUtil.createCipher(SecureUtil.java:987)
- com.reach.covid W/System.err: at cn.hutool.crypto.symmetric.SymmetricCrypto.init(SymmetricCrypto.java:154)
- com.reach.covid W/System.err: at cn.hutool.crypto.symmetric.SymmetricCrypto.<init>(SymmetricCrypto.java:124)
- com.reach.covid W/System.err: at cn.hutool.crypto.symmetric.SymmetricCrypto.<init>(SymmetricCrypto.java:112)
- com.reach.covid W/System.err: at cn.hutool.crypto.symmetric.SymmetricCrypto.<init>(SymmetricCrypto.java:101)
- com.reach.covid W/System.err: at cn.hutool.crypto.symmetric.SM4.<init>(SM4.java:37)
- com.reach.covid W/System.err: at cn.hutool.crypto.SmUtil.sm4(SmUtil.java:143)
还是没有解决!!!!
查阅了很多外国资料,抱着试一试的态度,居然好了。。。。。
解决方法是版本原因!
implementation 'cn.hutool:hutool-all:5.4.5' compile 'org.bouncycastle:bcprov-jdk15to18:1.69'
版本更新至这样就行了。。。。以此记录下这问题,em........
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。