ToolsFx icon indicating copy to clipboard operation
ToolsFx copied to clipboard

对称加密算法CCM模式实现的有BUG,随机数NONCE

Open xuyb6 opened this issue 1 week ago • 1 comments

ToolsFx版本及构建日期(如v1.15.1.beta2 2022-12-13):

系统版本及位数(Windows/OSX/ Linux /x86/x64/ arm):

windows10

Java版本(jdk 1.8.0 x86 oracle/openjdk):

1.8

操作步骤(如运行ToolsFx.bat):

对称加密算法中选择CCM模式,

问题现象(如闪退):

不能正常得出结论,出错

报错信息(命令行运行ToolsFx.bat/ToolsFx): encrypt error: java.security.InvalidAlgorithmParameterException: nonce must have length from 7 to 13 octets at org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher.engineInit(Unknown Source) at javax.crypto.Cipher.implInit(Cipher.java:809) at javax.crypto.Cipher.chooseProvider(Cipher.java:867) at javax.crypto.Cipher.init(Cipher.java:1399) at javax.crypto.Cipher.init(Cipher.java:1330) at me.leon.ext.crypto.SymmetricCryptoKt.makeCipher(SymmetricCrypto.kt:45) at me.leon.ext.crypto.SymmetricCryptoKt.encrypt(SymmetricCrypto.kt:15) at me.leon.controller.SymmetricCryptoController.encrypt(SymmetricCryptoController.kt:52) at me.leon.controller.SymmetricCryptoController.access$encrypt(SymmetricCryptoController.kt:11) at me.leon.controller.SymmetricCryptoController$encrypt$2.invoke(SymmetricCryptoController.kt:30) at me.leon.controller.SymmetricCryptoController$encrypt$2.invoke(SymmetricCryptoController.kt:23) at me.leon.ext.ExceptionKt.catch(Exception.kt:10) at me.leon.controller.SymmetricCryptoController.encrypt(SymmetricCryptoController.kt:23) at me.leon.view.SymmetricCryptoView$doCrypto$1.invoke(SymmetricCryptoView.kt:275) at me.leon.view.SymmetricCryptoView$doCrypto$1.invoke(SymmetricCryptoView.kt:259) at tornadofx.FXTask.call(Async.kt:457) at javafx.concurrent.Task$TaskCallable.call(Task.java:1423) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750) Caused by: java.lang.IllegalArgumentException: nonce must have length from 7 to 13 octets at org.bouncycastle.crypto.modes.CCMBlockCipher.init(Unknown Source) at org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher$AEADGenericBlockCipher.init(Unknown Source) ... 21 more

xuyb6 avatar Jun 26 '24 02:06 xuyb6