java - बेस 64 एन्कोड और डीकोड उदाहरण कोड




android base64 (7)

क्या किसी को बेस 64 का उपयोग कर बेस 64 में स्ट्रिंग को डीकोड और एन्कोड करने का तरीका पता है। मैं निम्नलिखित कोड का उपयोग कर रहा हूं, लेकिन यह काम नहीं कर रहा है।

String source = "password"; 
byte[] byteArray = source.getBytes("UTF-16"); 
Base64 bs = new Base64(); 
//bs.encodeBytes(byteArray); 
System.out.println( bs.encodeBytes(byteArray)); 
//bs.decode(bs.encodeBytes(byteArray));
System.out.println(bs.decode(bs.encodeBytes(byteArray)));

Answers

यदि आप इस तरह के उपयोग से कोटलिन का उपयोग कर रहे हैं

एनकोड के लिए

val password = "Here Your String"
val data = password.toByteArray(charset("UTF-8"))
val base64 = Base64.encodeToString(data, Base64.DEFAULT)

डीकोड के लिए

val datasd = Base64.decode(base64, Base64.DEFAULT)
val text = String(datasd, charset("UTF-8"))

Base64.encodeBytes() साथ एन्कोड किए गए स्ट्रिंग को डीकोड करने के बारे में जानकारी खोजने के दौरान यहां समाप्त होने वाले किसी और व्यक्ति के लिए, मेरा समाधान यहां था:

// encode
String ps = "techPass";
String tmp = Base64.encodeBytes(ps.getBytes());

// decode
String ps2 = "dGVjaFBhC3M=";
byte[] tmp2 = Base64.decode(ps2); 
String val2 = new String(tmp2, "UTF-8"); 

इसके अलावा, मैं एंड्रॉइड के पुराने संस्करणों का समर्थन कर रहा हूं इसलिए मैं http://iharder.net/base64 से रॉबर्ट हार्डर की बेस 64 लाइब्रेरी का उपयोग कर रहा हूं


पिछले उत्तरों के आधार पर मैं निम्नलिखित उपयोगिता विधियों का उपयोग कर रहा हूं यदि कोई इसका उपयोग करना चाहेगा।

    /**
 * @param message the message to be encoded
 *
 * @return the enooded from of the message
 */
public static String toBase64(String message) {
    byte[] data;
    try {
        data = message.getBytes("UTF-8");
        String base64Sms = Base64.encodeToString(data, Base64.DEFAULT);
        return base64Sms;
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }

    return null;
}

/**
 * @param message the encoded message
 *
 * @return the decoded message
 */
public static String fromBase64(String message) {
    byte[] data = Base64.decode(message, Base64.DEFAULT);
    try {
        return new String(data, "UTF-8");
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }

    return null;
}

प्रथम:

  • एक एन्कोडिंग चुनें। यूटीएफ -8 आम तौर पर एक अच्छी पसंद है; एक एन्कोडिंग से चिपके रहें जो निश्चित रूप से दोनों तरफ मान्य होगा। यूटीएफ -8 या यूटीएफ -16 के अलावा कुछ और उपयोग करना दुर्लभ होगा।

अंत प्रेषण:

  • बाइट को स्ट्रिंग को एन्कोड करें (उदाहरण के लिए text.getBytes(encodingName) )
  • बेस 64 कक्षा का उपयोग कर बेस 64 पर बाइट्स को एन्कोड Base64
  • बेस 64 प्रेषित करें

अंत प्राप्त:

  • बेस 64 प्राप्त करें
  • बेस 64 कक्षा का उपयोग कर बेस 64 को बाइट्स में डीकोड Base64
  • एक स्ट्रिंग में बाइट्स को डीकोड करें (जैसे new String(bytes, encodingName) )

तो कुछ ऐसा है:

// Sending side
byte[] data = text.getBytes("UTF-8");
String base64 = Base64.encodeToString(data, Base64.DEFAULT);

// Receiving side
byte[] data = Base64.decode(base64, Base64.DEFAULT);
String text = new String(data, "UTF-8");

या StandardCharsets Charsets के साथ:

// Sending side
byte[] data = text.getBytes(StandardCharsets.UTF_8);
String base64 = Base64.encodeToString(data, Base64.DEFAULT);

// Receiving side
byte[] data = Base64.decode(base64, Base64.DEFAULT);
String text = new String(data, StandardCharsets.UTF_8);

एन्क्रिप्ट करने के लिए:

byte[] encrpt= text.getBytes("UTF-8");
String base64 = Base64.encodeToString(encrpt, Base64.DEFAULT);

डिक्रिप्ट करने के लिए:

byte[] decrypt= Base64.decode(base64, Base64.DEFAULT);
String text = new String(decrypt, "UTF-8");

कोटलिन एमबी के लिए इसका उपयोग बेहतर है:

fun String.decode(): String {
    return Base64.decode(this, Base64.DEFAULT).toString(charset("UTF-8"))
}

fun String.encode(): String {
    return Base64.encodeToString(this.toByteArray(charset("UTF-8")), Base64.DEFAULT)
}

उदाहरण:

Log.d("LOGIN", "TEST")
Log.d("LOGIN", "TEST".encode())
Log.d("LOGIN", "TEST".encode().decode())

मैं बेस 64 सर्ल एन्कोडिंग के लिए एन्कोड / डिकोड करने के लिए कोड की तलाश करते समय यहां हिट करता हूं जो प्रश्न 64 में बेस 64 से थोड़ा अलग है।

इस दस्तावेज़ में सी # कोड स्निपेट मिला। JSON वेब हस्ताक्षर ietf ड्राफ्ट





java android base64