作者icemask (星風狂翼)
看板java
標題Re: [問題] 看不懂訊息~~請大大幫忙解答
時間Mon Dec 3 22:39:27 2007
※ 引述《icemask (星風狂翼)》之銘言:
: 各位大大~~~~
: 小弟我寫了一個RSA的加解密的程式
: 加密的時候是ok的
: 但是到解密的時候就會出問題
: 會出現
: Exception in thread "main" javax.crypto.BadPaddingException: Data must start
: with zero
: 這個訊息
: 所以想請大大幫我解答
各位大大,我剛剛有試了一下
KeyPairGenerator rsa_kgen = KeyPairGenerator.getInstance("RSA");
SecureRandom rsa_rnd = SecureRandom.getInstance("SHA1PRNG","SUN");
rsa_kgen.initialize(1024,rsa_rnd);
KeyPair rsa_keypair=rsa_kgen.generateKeyPair();
PublicKey rsa_publickey = rsa_keypair.getPublic();
System.out.println(rsa_publickey);
PrivateKey rsa_privatekey = rsa_keypair.getPrivate();
System.out.println(rsa_privatekey);
String a="123456";
Cipher cipher=Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE,rsa_publickey);
byte[] aa=a.getBytes();
byte[] b=cipher.doFinal(aa);
System.out.println(b);
cipher.init(Cipher.DECRYPT_MODE,rsa_publickey);
byte[] c=cipher.doFinal(b);
System.out.println(c);
這是我寫的原碼,就是不知道解密出了什麼問題
所以才想要問一下有什麼方法可以解決
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.214.70
推 superlubu:... 為什麼 encrypt 和 decrypt 都用 public key 的? 12/04 06:45
→ superlubu:private key 去領便當了嗎 XD 12/04 06:46
推 superlubu:還有用 println(byte[]) 你應該只能得到一堆讀不懂的字 12/04 08:56
推 icemask:謝謝大大~~問題已經改過了~~~那還想請問一個問題~ 12/04 22:57
→ icemask:如果key存出來,有什麼方法使加解密成功? 12/04 22:59
推 superlubu:什麼叫 key 存出來?把 key save 到 file 裡之後再用? 12/04 23:51
→ superlubu:就直接把 key 的 bytes 存到 file 中就好了啊 12/04 23:52
推 icemask:可是我存了之後加解密還是有問題阿 12/05 02:57
→ icemask:還是我po我的程式上來請大大幫我看一下哪有問題~~ 12/05 02:59
推 superlubu:沒錯,貼個 program segment 是最快的 12/05 08:38
→ icemask:這是我的程式碼~~請大大看一下 12/05 10:04