java - बेस 64 एन्कोडर और डिकोडर




android base64 (4)

एन्कोड करने के लिए:

private String encodeString(String s) {
    byte[] data = new byte[0];

    try {
        data = s.getBytes("UTF-8");

    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } finally {
        String base64Encoded = Base64.encodeToString(data, Base64.DEFAULT);

        return base64Encoded;

    }
}

डीकोड करने के लिए:

private String decodeString(String encoded) {
    byte[] dataDec = Base64.decode(encoded, Base64.DEFAULT);
    String decodedString = "";
    try {

        decodedString = new String(dataDec, "UTF-8");
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();

    } finally {

        return decodedString;
    }
}

उदाहरण

    String text = "example007";

    Log.e("encoded", encodeString(text)); //Output: ZXhhbXBsZTAwNw==
    Log.e("decoded", decodeString(encodeString(text))); //Output: example007

एंड्रॉइड में स्ट्रिंग के लिए बेस -64 डिकोडर और एन्कोडर है?


यदि आप स्ट्रिंग के अंत में लाइन ब्रेक नहीं चाहते हैं, तो Base64.DEFAULT से Base64.NO_WRAP Base64.DEFAULT को Base64.NO_WRAP

Base64.encodeToString("yourString".getBytes("UTF-8"), Base64.NO_WRAP);

यहां एक सरल विधि है जिसका उपयोग मैं तब तक करने जा रहा था जब तक मुझे एहसास हुआ कि यह केवल एंड्रॉइड एपीआई 8+ में समर्थित है:

// Has line break
public String getBase64(final String input) {
    return Base64.encodeToString(input.getBytes(), Base64.DEFAULT);
}

// No line break
public String getBase64(final String input) {
    return Base64.encodeToString(input.getBytes(), Base64.NO_WRAP);
}

android.util.Base64 देखें

ऐसा लगता है कि यह एपीआई संस्करण 8 या एंड्रॉइड 2.2 में जोड़ा गया था, इसलिए यह पुराने प्लेटफॉर्म पर उपलब्ध नहीं होगा।

लेकिन इसका स्रोत android/util/Base64.java इसलिए यदि आवश्यक हो तो पुराने संस्करणों के लिए इसे अपरिवर्तित कर सकते हैं।





decoder