# 逆向开发时,本地运行 js 代码,需要用到 node 环境,有的代码需要用到 windows.atob 或者 windows.btoa , 但是低版本的 node 没有这两个函数,可以用以下两种方法实现。

  1. # 使用 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 结果才一样

  2. # 第二种办法,升级 node 到 16.0 以上,我专门升级测试了一下,结果和浏览器一致

    • 这里升级遇到了点坑。。。百度上教程都是 npm 指令升级
    npm cache clean -f     # 清除缓存
    npm install -g n  		# 安装 n 模块,管理 node 版本
    n stable		# 更新到稳定版本
    • 但是!!!上诉指令不适用 windowswin 系统老老实实去官网下载安装

      下载地址:https://nodejs.org/zh-cn/download/

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

渣渣文 微信支付

微信支付

渣渣文 支付宝

支付宝