java 进行base64加密
时间: 2023-04-06 22:01:02 浏览: 216
可以使用Java自带的Base64类进行加密。具体方法是先将需要加密的字符串转换为字节数组,然后调用Base64类的encodeToString方法进行加密。加密后的字符串即为Base64编码后的结果。
相关问题
java使用Base64 加密
在Java中,Base64加密是一种常见的数据编码方式,用于将二进制数据转换成ASCII字符序列,便于在网络传输或存储文本环境中保留原始数据的结构。以下是使用Java内置`java.util.Base64`类对字符串进行Base64编码的一个简单示例[^1]:
```java
import java.util.Base64;
public class Main {
public static void main(String[] args) {
String originalData = "This is a test string";
byte[] encodedBytes = Base64.getEncoder().encode(originalData.getBytes());
String encodedString = new String(encodedBytes);
System.out.println("Encoded string: " + encodedString);
}
}
```
在这个例子中,`getEncoder()`方法返回一个`Base64.Encoder`实例,然后调用其`encode()`方法将字符串转换为Base64编码的字节数组。
如果你想要更深入地了解其他库如Commons Codec或Bouncy Castle的实现,它们可能提供了更多的选项和配置[^2],但上述JDK自带的方式是最基础且广泛使用的。
java手写base64加密
可以通过以下代码实现Java手写Base64加密:
```
public class Base64Encoder {
private static final char[] BASE64_ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".toCharArray();
public static String encode(String input) {
byte[] bytes = input.getBytes();
StringBuilder sb = new StringBuilder();
int index;
for (int i = 0; i < bytes.length; i += 3) {
index = (bytes[i] & 0xFF) << 16;
if (i + 1 < bytes.length) {
index |= (bytes[i + 1] & 0xFF) << 8;
}
if (i + 2 < bytes.length) {
index |= bytes[i + 2] & 0xFF;
}
sb.append(BASE64_ALPHABET[(index >> 18) & 0x3F]);
sb.append(BASE64_ALPHABET[(index >> 12) & 0x3F]);
sb.append(BASE64_ALPHABET[(index >> 6) & 0x3F]);
sb.append(BASE64_ALPHABET[index & 0x3F]);
}
int padding = 0;
switch (bytes.length % 3) {
case 1:
padding = 2;
break;
case 2:
padding = 1;
break;
default:
break;
}
for (int i = 0; i < padding; i++) {
sb.setCharAt(sb.length() - 1 - i, '=');
}
return sb.toString();
}
}
```
使用示例:
```
String input = "Hello, World!";
String encoded = Base64Encoder.encode(input);
System.out.println(encoded); // SGVsbG8sIFdvcmxkIQ==
```
需要注意的是,这里的实现是没有进行URL安全处理和解码功能的,仅供参考。
阅读全文