Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javax.crypto.IllegalBlockSizeException由以下原因引起:android.security.KeyStoreException:输入长度无效_Java_Android_Android Studio_Encryption_Rsa - Fatal编程技术网

javax.crypto.IllegalBlockSizeException由以下原因引起:android.security.KeyStoreException:输入长度无效

javax.crypto.IllegalBlockSizeException由以下原因引起:android.security.KeyStoreException:输入长度无效,java,android,android-studio,encryption,rsa,Java,Android,Android Studio,Encryption,Rsa,我目前正在制作一个小的安卓程序,它可以存储加密的文件,以后可以加载并解密。我的代码有问题,似乎找不到合适的答案。 我的代码: 因此,它在app load上加载或生成带有prepKeys()的密钥,并在需要时对文本进行加密/解密 我得到的错误是: W/System.err: javax.crypto.IllegalBlockSizeException W/System.err: at android.security.keystore.AndroidKeyStoreCipherSpiBas

我目前正在制作一个小的安卓程序,它可以存储加密的文件,以后可以加载并解密。我的代码有问题,似乎找不到合适的答案。 我的代码:

因此,它在app load上加载或生成带有prepKeys()的密钥,并在需要时对文本进行加密/解密

我得到的错误是:

W/System.err: javax.crypto.IllegalBlockSizeException
W/System.err:     at android.security.keystore.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:513)
W/System.err:     at javax.crypto.Cipher.doFinal(Cipher.java:1741)
W/System.err:     at com.example.aizaku.myapplication.MainActivity.RSADecrypt(MainActivity.java:113)
W/System.err:     at com.example.aizaku.myapplication.MainActivity$1.onClick(MainActivity.java:202)
W/System.err:     at android.view.View.performClick(View.java:6294)
W/System.err:     at android.view.View$PerformClick.run(View.java:24770)
W/System.err:     at android.os.Handler.handleCallback(Handler.java:790)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err:     at android.os.Looper.loop(Looper.java:164)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6494)
W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
W/System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
W/System.err: Caused by: android.security.KeyStoreException: Invalid input length
W/System.err:     at android.security.KeyStore.getKeyStoreException(KeyStore.java:697)
W/System.err:     at android.security.keystore.KeyStoreCryptoOperationChunkedStreamer.update(KeyStoreCryptoOperationChunkedStreamer.java:132)
W/System.err:     at android.security.keystore.KeyStoreCryptoOperationChunkedStreamer.doFinal(KeyStoreCryptoOperationChunkedStreamer.java:217)
W/System.err:     at android.security.keystore.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:506)
W/System.err:   ... 12 more
当试图在第行解密数据(甚至是小的加密文本“abc”)时,就会发生这种情况


请帮我找到答案:)

文件有多大?RSA只能加密大约240字节。我不确定。。我该怎么查?嗯。。。只要找出你加密的文件有多大…?查看调试器,它说它是字节[216]aaaand,这太大了。
W/System.err: javax.crypto.IllegalBlockSizeException
W/System.err:     at android.security.keystore.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:513)
W/System.err:     at javax.crypto.Cipher.doFinal(Cipher.java:1741)
W/System.err:     at com.example.aizaku.myapplication.MainActivity.RSADecrypt(MainActivity.java:113)
W/System.err:     at com.example.aizaku.myapplication.MainActivity$1.onClick(MainActivity.java:202)
W/System.err:     at android.view.View.performClick(View.java:6294)
W/System.err:     at android.view.View$PerformClick.run(View.java:24770)
W/System.err:     at android.os.Handler.handleCallback(Handler.java:790)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err:     at android.os.Looper.loop(Looper.java:164)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6494)
W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
W/System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
W/System.err: Caused by: android.security.KeyStoreException: Invalid input length
W/System.err:     at android.security.KeyStore.getKeyStoreException(KeyStore.java:697)
W/System.err:     at android.security.keystore.KeyStoreCryptoOperationChunkedStreamer.update(KeyStoreCryptoOperationChunkedStreamer.java:132)
W/System.err:     at android.security.keystore.KeyStoreCryptoOperationChunkedStreamer.doFinal(KeyStoreCryptoOperationChunkedStreamer.java:217)
W/System.err:     at android.security.keystore.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:506)
W/System.err:   ... 12 more
decryptedBytes = cipher1.doFinal(encryptedBytes);