Note that there are some explanatory texts on larger screens.

plurals
  1. PO"javax.crypto.BadPaddingException: Data must start with zero" exception
    primarykey
    data
    text
    <p>I encountered the abovementioned exception while I was decrypting a string.</p> <p>Below is my code:</p> <pre><code>import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.NoSuchAlgorithmException; import javax.crypto.Cipher; public class EncryptAndDecrypt { public static Cipher createCipher () throws Exception{ Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); return cipher; } public static KeyPair generateKey () throws NoSuchAlgorithmException{ KeyPairGenerator keyGen = KeyPairGenerator.getInstance ("RSA"); keyGen.initialize(1024); KeyPair key = keyGen.generateKeyPair(); return key; } public static byte [] encrypt (String str, Cipher cip, KeyPair key) { byte [] cipherText = null; try { byte [] plainText = str.getBytes("UTF8"); cip.init(Cipher.ENCRYPT_MODE, key.getPublic()); cipherText = cip.doFinal(plainText); } catch (Exception e) { e.printStackTrace(); } return cipherText; } public static String decrypt (byte [] c, Cipher cip, KeyPair key) throws Exception { cip.init(Cipher.DECRYPT_MODE, key.getPrivate()); byte [] decryptedPlainText = cip.doFinal (c);// exception occurred here String decryptedPlainStr = new String (decryptedPlainText); return decryptedPlainStr; } } //separate class below to use the encrypt method public class EncryptionApp { public static void main (String [] args) { getEncrypted(); } public static byte [] getEncrypted () { byte [] encyptedByte = null; try { String plainText = "der"; Cipher cip = Safety.createCipher(); KeyPair key = Safety.generateKey(); encyptedByte = Safety.useRSA(plainText, cip, key); } catch (Exception e) { e.printStackTrace(); } return encyptedByte; } } // Another class to use the decrypt method public class DecryptionApp { public static void main(String[] args) { System.out.println (useDecrypted () ); } public static byte[] useDecrypted () { byte [] decryptedText = null; try { Cipher cip = EncryptAndDecrypt.createCipher(); KeyPair key = EncryptAndDecrypt.generateKey(); decryptedText = EncryptAndDecrypt.decrypt(EncryptionApp.getEncrypted(),cip,key); } catch (Exception e) { e.printStackTrace(); } return decryptedText; } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload