好吧,我知道怎么用 C # 。
这很简单:
Convert.ToBase64String(byte[]) and Convert.FromBase64String(string) to get byte[] back.
我怎么用 Java 做这个?
用途:
byte[] data = Base64.encode(base64str);
编码转换为 Base64
您需要从您的项目中引用 Commons 编解码器,以便该代码能够正常工作。
对于 java8 :
import java.util.Base64
对字节数组进行编码或解码:
byte[] encoded = Base64.getEncoder().encode("Hello".getBytes()); println(new String(encoded)); // Outputs "SGVsbG8=" byte[] decoded = Base64.getDecoder().decode(encoded); println(new String(decoded)) // Outputs "Hello"
或者,如果你只是想要字符串:
String encoded = Base64.getEncoder().encodeToString("Hello".getBytes()); println(encoded); // Outputs "SGVsbG8=" String decoded = new String(Base64.getDecoder().decode(encoded.getBytes())); println(decoded) // Outputs "Hello"
有关更多信息,请参见 基地64。
Base64不与小于8的 Java 版本绑定。我建议使用 Apache Commons 编解码器。
对于直接字节数组:
Base64 codec = new Base64(); byte[] encoded = codec.encode("Hello".getBytes()); println(new String(encoded)); // Outputs "SGVsbG8=" byte[] decoded = codec.decode(encoded); println(new String(decoded)) // Outputs "Hello"
Base64 codec = new Base64(); String encoded = codec.encodeBase64String("Hello".getBytes()); println(encoded); // Outputs "SGVsbG8=" String decoded = new String(codec.decodeBase64(encoded)); println(decoded) // Outputs "Hello"
如果你已经在一个 Spring 项目中工作,你可能会发现他们的 org.springframework.util.Base64Utils类更符合人体工程学:
org.springframework.util.Base64Utils
byte[] encoded = Base64Utils.encode("Hello".getBytes()); println(new String(encoded)) // Outputs "SGVsbG8=" byte[] decoded = Base64Utils.decode(encoded); println(new String(decoded)) // Outputs "Hello"
String encoded = Base64Utils.encodeToString("Hello".getBytes()); println(encoded); // Outputs "SGVsbG8=" String decoded = Base64Utils.decodeFromString(encoded); println(new String(decoded)) // Outputs "Hello"
如果您在 Java8之前使用 Android SDK,那么您的最佳选择是使用捆绑的 android.util.Base64。
android.util.Base64
byte[] encoded = Base64.encode("Hello".getBytes()); println(new String(encoded)) // Outputs "SGVsbG8=" byte [] decoded = Base64.decode(encoded); println(new String(decoded)) // Outputs "Hello"
String encoded = Base64.encodeToString("Hello".getBytes()); println(encoded); // Outputs "SGVsbG8=" String decoded = new String(Base64.decode(encoded)); println(decoded) // Outputs "Hello"
此外,对于我们的 Android 好友(API 级别8) :
import android.util.Base64 ... Base64.encodeToString(bytes, Base64.DEFAULT);
如果您正好使用的是 Spring 框架和 Java,有一个简单的解决方法。
导入以下内容。
import org.springframework.util.Base64Utils;
Convert like this.
byte[] bytearr ={0,1,2,3,4}; String encodedText = Base64Utils.encodeToString(bytearr);
要进行解码,可以使用 Base64Utils 类的 decdeToString 方法。