js base64加密和解密方法
时间: 2024-12-28 17:32:20 浏览: 10
在JavaScript中,Base64是一种常用的编码方式,常用于数据的存储和传输,因为它能将二进制数据转化为可打印的ASCII字符串。以下是使用原生JavaScript进行Base64编码和解码的基本方法:
### Base64编码
```javascript
function encodeBase64(data) {
return window.btoa(unescape(encodeURIComponent(data)));
}
// 示例
let binaryData = new Uint8Array([0x00, 0x01, 0x02]); // 假设这是二进制数据
let encodedData = encodeBase64(binaryData);
```
### Base64解码
```javascript
function decodeBase64(encodedData) {
return decodeURIComponent(escape(window.atob(encodedData)));
}
// 示例
let decodedData = decodeBase64(encodedData);
```
这里的`btoa()`和`atob()`函数是浏览器内置的用于Base64编码和解码的方法。注意,由于JavaScript的全局对象`window`可能需要在某些环境(如Node.js)中稍作修改,上述方法可能需要调整。
相关问题
js base64加密后端解密
在前端和后端数据传输时,常常会涉及到隐私数据的传输,例如用户名和密码。为了保护这些隐私数据的安全性,我们可以使用Base64进行加密和解密操作。
在后端进行加密的代码如下所示:
```
@GetMapping("/testGet")
@ResponseBody
public String testGet(){
String data = "您好";
data = Base64.encodeBase64String(data.getBytes(StandardCharsets.UTF_8));
System.out.println("编码后: " + data); // 编码后: 5oKo5aW9Kw==
return data;
}
```
这段代码将字符串"data"进行Base64加密,并将加密后的结果返回。
而后端进行解密的代码如下所示:
```
@PostMapping("/testPost")
@ResponseBody
public int testPost(String data) throws UnsupportedEncodingException {
System.out.println("解码前: " + data); // 解码前: JUU2JTgyJUE4JUU1JUE1JUJEJTI1MkI=
// 开始解码
Base64 base64 = new Base64();
String decode = URLDecoder.decode(new String(base64.decode(data), "utf-8"), "utf-8");
System.out.println("解码后: " + decode); // 解码后: 您好+
// 将+换回空格
String decodeVo = decode.replace("+"," ");
System.out.println("完全解码: " + decodeVo); // 完全解码: 您好
return 1;
}
```
这段代码接收前端传来的经过Base64加密的字符串"data",然后进行解码操作并返回解码后的结果。
因此,在前端加密后端解密的情况下,您可以使用js的Base64加密方法对数据进行加密,然后将加密后的数据传输给后端进行解密操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [java和js实现前端加密后端解密,后端加密前端解密(Base64)](https://blog.csdn.net/m0_63393739/article/details/126765484)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文