// 待加密的对象 const personInfo = { name: '贾飞天', age: 18, address: '%10%' }; /* ⭕window.btoa(): Base64加密 该方法使用 "A-Z", "a-z", "0-9", "+", "/" 和 "=" 字符来编码字符串。 ⭕window.atob(): Base64解密 ❗❗❗window.btoa()与window.atob()不支持中文 由于window.btoa()方法仅支持ASCII编码, 我们在转换中文的时候就需要先将中文转换为ASCII字符序列, 再通过btoa进行base64编码 ⭕转换ASCII字符序列的方法我们可以使用encodeURIComponent和decodeURIComponent */ // utf-8转换base64字符串 const utf8_to_base64 = (str) => window.btoa(encodeURIComponent(str)); // base64转换utf-8字符串 const base64_to_utf8 = (str) => decodeURIComponent(window.atob(str)); // 加密 const encodeInfo = utf8_to_base64(JSON.stringify(personInfo)); console.log(encodeInfo); // JTdCJTIybmFtZSUyMiUzQSUyMiVFOCVCNCVCRSVFOSVBMyU5RSVFNSVBNCVBOSUyMiUyQyUyMmFnZSUyMiUzQTE4JTJDJTIyYWRkcmVzcyUyMiUzQSUyMiUyNTEwJTI1JTIyJTdE // 解密 const decodeInfo = base64_to_utf8(encodeInfo); console.log(decodeInfo); // {"name":"贾飞天","age":18,"address":"%10%"} console.log(JSON.parse(decodeInfo)); // {name: '贾飞天', age: 18, address: '%10%'} /* ⭕后端java使用 // 加密 String base64字符串 = Base64.getEncoder().encodeToString("待加密字符串".getBytes("utf-8")); // 解密 String 普通字符串 = new String(Base64.getDecoder().decode("待解密base64字符串"), "utf-8"); // java对URL进行编码和解码 import java.net.URLEncoder; import java.net.URLDecoder; // 编码 URLEncoder.encode( URL, "UTF-8" ) // 解码 URLDecoder.decode( URL, "UTF-8" ) */
标签:Base64,加密,base64,解密,window,字符串 From: https://www.cnblogs.com/lasding/p/16992716.html