首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Base64 Java编码和解码字符串

Base64 Java编码和解码字符串
EN

Stack Overflow用户
提问于 2013-11-03 00:03:39
回答 5查看 670.1K关注 0票数 176

我想将一个字符串编码成base64,然后通过套接字将其传输并解码回来。

但在解码后,它给出了不同的答案。

下面是我的代码,结果是"77+9x6s=“

代码语言:javascript
复制
import javax.xml.bind.DatatypeConverter;

    public class f{

       public static void main(String a[]){

          String str = new String(DatatypeConverter.parseBase64Binary("user:123"));
          String res = DatatypeConverter.printBase64Binary(str.getBytes());
          System.out.println(res);
       }
    }

有关于如何实现这一点的想法吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-11-03 00:09:53

您可以使用以下方法:

代码语言:javascript
复制
import org.apache.commons.codec.binary.Base64;

// Encode data on your side using BASE64
byte[] bytesEncoded = Base64.encodeBase64(str.getBytes());
System.out.println("encoded value is " + new String(bytesEncoded));

// Decode data on other side, by processing encoded data
byte[] valueDecoded = Base64.decodeBase64(bytesEncoded);
System.out.println("Decoded value is " + new String(valueDecoded));

希望这能解答你的疑虑。

票数 264
EN

Stack Overflow用户

发布于 2015-02-04 02:06:52

Java8现在支持BASE64编码和解码。您可以使用以下类:java.util.Base64java.util.Base64.Encoderjava.util.Base64.Decoder

示例用法:

代码语言:javascript
复制
// encode with padding
String encoded = Base64.getEncoder().encodeToString(someByteArray);

// encode without padding
String encoded = Base64.getEncoder().withoutPadding().encodeToString(someByteArray);

// decode a String
byte [] barr = Base64.getDecoder().decode(encoded); 
票数 155
EN

Stack Overflow用户

发布于 2014-10-23 22:38:03

对于Spring用户,Spring Security在org.springframework.security.crypto.codec包中有一个Base64类,也可以用来对Base64进行编码和解码。例如。

代码语言:javascript
复制
 public static String base64Encode(String token) {
    byte[] encodedBytes = Base64.encode(token.getBytes());
    return new String(encodedBytes, Charset.forName("UTF-8"));
}


public static String base64Decode(String token) {
    byte[] decodedBytes = Base64.decode(token.getBytes());
    return new String(decodedBytes, Charset.forName("UTF-8"));
}
票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19743851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档