2012-03-17 71 views
0

我使用下面的代码用正确的密钥解密没有问题,但当试图暴力强调一个关键“我不是黑客,它是安全课程“我得到填充错误。我不知道什么是错的。请帮助AES,JAVA和javax.crypto.BadPaddingException:鉴于最后的块没有正确填充

RandomAccessFile f = new RandomAccessFile("partial-key.dat", "r"); 
    byte[] pkey = new byte[(int)f.length()]; 
    f.read(pkey); 

    byte[] key = new byte[16]; 

    RandomAccessFile f1 = new RandomAccessFile("ciphertext2.dat", "r"); 
    byte[] cipher_text = new byte[(int)f1.length()]; 
    f.read(cipher_text); 


    for(int copy=0; copy<12;copy++){ 
     key[copy] = pkey[copy]; 
    } 
    for(int br =0 ; br <=4 ; br++){ 
     byte[] integ = intToByteArray(br); 
     for(int ii =0 ; ii<4; ii++){ 
      key[12+ii] = integ[ii]; 
     } 


    SecretKeySpec skeySpec = new SecretKeySpec(key, "AES"); 
    Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING"); 
    cipher.init(Cipher.DECRYPT_MODE, skeySpec); 

    byte[] text_byte = cipher.doFinal(cipher_text); 
+0

发布你的堆栈跟踪,将有助于看到错误发生的位置。 – 2012-03-17 13:20:51

回答

0

问题是我使用主要方法级别的异常。我用try和catch,它抛出异常,我抓住它。

相关问题