2016-04-12 13 views
6

Bu sorunu çözmeye çalıştım ama asla işe yaramayacak bir çözüme rastlamadım. Sorun şu ki BASE64Encoder hakkında uyarılar alıyorum. BASE64Encoder olmadan bunu yapmak için başka bir yolu var mı?BASE64Encoder dahili bir API'dir ve daha sonraki sürümlerde kaldırılabilir

kodu:

public static String Encrypt(String Data) throws Exception 
{ 
    Key key = generateKey(); 
    Cipher c = Cipher.getInstance(ALGO); 
    c.init(Cipher.ENCRYPT_MODE, key); 
    byte[] encVal = c.doFinal(Data.getBytes()); 
    String encryptedValue = new BASE64Encoder().encode(encVal); //Here is the problem 

    return encryptedValue; 
} 

public static String Decrypt(String encryptedData) throws Exception 
{ 
    Key key = generateKey(); 
    Cipher c = Cipher.getInstance(ALGO); 
    c.init(Cipher.DECRYPT_MODE, key); 
    byte[] decordedValue = new BASE64Decoder().decodeBuffer(encryptedData); //Another problem 
    byte[] decValue = c.doFinal(decordedValue); 
    String decryptedValue = new String(decValue); 

    return decryptedValue; 
} 

private static Key generateKey() throws Exception 
{ 
    Key key = new SecretKeySpec(keyValue, ALGO); 
    return key; 
} 

cevap

4

Artık (itibaren Java 8'den) Base64 kodlama ve kod çözme sınıfları kullanarak olmalıdır.

https://docs.oracle.com/javase/8/docs/api/java/util/Base64.html

import java.util.Base64; 
import java.util.UUID; 
import java.io.UnsupportedEncodingException; 

public class HelloWorld { 
    public static void main(final String... args) { 
     try { 
     // Encode using basic encoder 
     String base64encodedString = Base64.getEncoder().encodeToString("TutorialsPoint?java8".getBytes("utf-8")); 
     System.out.println("Base64 Encoded String (Basic) :" + base64encodedString); 

     // Decode 
     byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString); 

     System.out.println("Original String: " + new String(base64decodedBytes, "utf-8")); 
     base64encodedString = Base64.getUrlEncoder().encodeToString("TutorialsPoint?java8".getBytes("utf-8")); 
     System.out.println("Base64 Encoded String (URL) :" + base64encodedString); 

     StringBuilder stringBuilder = new StringBuilder(); 

     for (int i = 0; i < 10; ++i) { 
      stringBuilder.append(UUID.randomUUID().toString()); 
     } 

     byte[] mimeBytes = stringBuilder.toString().getBytes("utf-8"); 
     String mimeEncodedString = Base64.getMimeEncoder().encodeToString(mimeBytes); 
     System.out.println("Base64 Encoded String (MIME) :" + mimeEncodedString); 

     } catch (UnsupportedEncodingException e) { 
     System.out.println("Error :" + e.getMessage()); 
     } 
    } 
} 

Kod HERE alınan.

İlgili konular