java中base64和字符串之间怎么互相转换
时间: 2023-06-14 16:07:53 浏览: 216
在Java中,可以使用java.util.Base64类来进行Base64编码和解码,使用String类来进行字符串与字节数组之间的转换。下面是互相转换的示例代码:
1. 将字符串进行Base64编码:
```java
String str = "Hello, world!";
byte[] byteArr = str.getBytes(); // 将字符串转换为字节数组
String encodedStr = Base64.getEncoder().encodeToString(byteArr); // 对字节数组进行Base64编码
System.out.println(encodedStr); // 输出编码后的字符串
```
2. 将Base64编码的字符串进行解码:
```java
String encodedStr = "SGVsbG8sIHdvcmxkIQ=="; // Base64编码后的字符串
byte[] byteArr = Base64.getDecoder().decode(encodedStr); // 对编码后的字符串进行解码
String str = new String(byteArr); // 将字节数组转换为字符串
System.out.println(str); // 输出解码后的字符串
```
注意:在Java 8之前,可以使用sun.misc.BASE64Encoder和sun.misc.BASE64Decoder类进行Base64编码和解码,但是这些类已经被标记为过时,不推荐使用。
相关问题
java中 RSA 公钥与String类型互相转换
在 Java 中,可以使用 `java.security.Key` 接口来表示 RSA 公钥,而 `java.lang.String` 类型则是常见的字符串类型。可以通过以下步骤将 RSA 公钥与字符串类型互相转换:
1. 将 RSA 公钥转换为字符串类型
```java
// 假设 publicKey 是已经生成的 RSA 公钥
String publicKeyString = Base64.getEncoder().encodeToString(publicKey.getEncoded());
```
2. 将字符串类型转换为 RSA 公钥
```java
// 假设 publicKeyString 是保存的 RSA 公钥字符串
byte[] publicKeyBytes = Base64.getDecoder().decode(publicKeyString);
X509EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(publicKeyBytes);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PublicKey publicKey = keyFactory.generatePublic(publicKeySpec);
```
需要注意的是,在字符串类型和 RSA 公钥之间进行转换时,通常需要进行 Base64 编码和解码。同时,还需要使用 `java.security.spec.X509EncodedKeySpec` 类来表示 RSA 公钥的规范。
阅读全文