2013-01-04 83 views
0

的解密是否有可能進行加密和解密android中文字,但我發現了一個錯誤,但我不知道如何解決它,加密文本

的代碼是...

Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());   
    byte[] input = " www.java2s.com ".getBytes(); 
    byte[] keyBytes = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 
     0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 }; 

    SecretKeySpec key = new SecretKeySpec(keyBytes, "AES"); 
    Cipher cipher = Cipher.getInstance("AES/ECB/NoPadding", "BC"); 
    System.out.println("input text : " + new String(input)); 

    // encryption pass 

    byte[] cipherText = new byte[input.length]; 
    cipher.init(Cipher.ENCRYPT_MODE, key); 
    int ctLength = cipher.update(input, 0, input.length, cipherText, 0); 
    ctLength += cipher.doFinal(cipherText, ctLength); 
    System.out.println("cipher text: " + new String(cipherText) + " bytes: " + ctLength); 

    // decryption pass 

    byte[] plainText = new byte[ctLength]; 
    cipher.init(Cipher.DECRYPT_MODE, key); 
    int ptLength = cipher.update(cipherText, 0, ctLength, plainText, 0); 
    ptLength += cipher.doFinal(plainText, ptLength); 
    System.out.println("plain text : " + new String(plainText) + " bytes: " + ptLength); 

於firstLine顯示錯誤

+2

什麼是錯誤? –

+1

歐洲央行不安全。 – SLaks

+0

看看這個http://www.androidsnippets.com/encryptdecrypt-strings – itsrajesh4uguys

回答

0

你應該先知道,當你解決的關鍵或產生不安全的一個加密變得非常脆弱!

See my answer here你會發現一個通用的易於使用的SecurityUtil類,它可以保護基於密碼的AES加密/解密,這對您可能很有用。