工具类页面最怕的是「你输入的内容被上传」。这条路可以直接堵死:能本地算的,全部本地算。
为什么坚持纯前端
- 用户粘贴的是接口返回、密钥、日志,上传即泄露;
- 本地计算没有网络往返,体验更快;
- 服务端零压力,也不存在被刷接口的问题。
实现上的几个小坑
Base64 处理中文要先用 TextEncoder 转字节,直接 btoa('中文') 会抛异常:
const bytes = new TextEncoder().encode(text);
let binary = '';
bytes.forEach(b => binary += String.fromCharCode(b));
return btoa(binary);二维码生成用纯 JS 实现,不需要任何外链图片接口,断网也能用。