# 逆向开发时,本地运行 js
代码,需要用到 node
环境,有的代码需要用到 windows.atob
或者 windows.btoa
, 但是低版本的 node
没有这两个函数,可以用以下两种方法实现。
# 使用
buffer
封装, 网上搜到的基本上都没指定toString("binary")
,不加binary
,编码普通的字母数字没问题,但是一些特殊字符和浏览器结果不同。window.btoa = function (str) {
return Buffer.from(str.toString("binary")).toString("base64");
};
window.atob = function (base64str) {
return Buffer.from(base64str, 'base64').toString("binary");
};
浏览器的结果
没加
toString("binary")
的atob
,可以明显看出结果要短一些,看一下长度确实只有6
,加上binary
结果才一样
# 第二种办法,升级
node
到 16.0 以上,我专门升级测试了一下,结果和浏览器一致- 这里升级遇到了点坑。。。百度上教程都是
npm
指令升级
npm cache clean -f # 清除缓存
npm install -g n # 安装 n 模块,管理 node 版本
n stable # 更新到稳定版本
但是!!!上诉指令不适用
windows
,win
系统老老实实去官网下载安装下载地址:https://nodejs.org/zh-cn/download/
- 这里升级遇到了点坑。。。百度上教程都是