iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >如何把JS代码生成字节码
  • 268
分享到

如何把JS代码生成字节码

2024-04-02 19:04:59 268人浏览 泡泡鱼
摘要

本篇内容介绍了“如何把js代码生成字节码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!实现原理nodejs

本篇内容介绍了“如何把js代码生成字节码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

实现原理

nodejs的内核中对于js的解析,使用的是谷歌的v8引擎。v8引擎内置有js虚拟机。通过v8虚拟机,可以将js代码编译为字节码。而v8虚拟机是能够识别和直接运行该字节码的。因此,以下执行逻辑成为可能:

1、js代码 -> js字节码

2、js字节码 -> nodejs ->运行

实现代码

(例程)

生成字节码文件的部分:

var v8 = require('v8'); var fs = require('fs'); //读取源文件(JS源码) var js_code = fs.readFileSync(__dirname+"/test.js").toString(); //生成字节码 var script = new vm.Script(js_code, {produceCachedData: true}); var byte_code = script.cachedData; //将字节码写入文件 fs.writeFileSync(__dirname+"/test.jsb",byte_code);

读取并运行字节码的部分:

var v8 = require('v8'); var fs = require('fs'); //从文件中读取字节码 byte_code = fs.readFileSync(__dirname+"/test.jsb"); //运行 var l = byte_code.slice(8, 12).reduce(function (sum, number, power) { return sum += number * Math.pow(256, power);}); var dummyCode =" ".repeat(l); script = new vm.Script(dummyCode, {cachedData: byte_code}); script.runInThisContext();

运行效果

test.js是本例的测试文件,内容如下:

console.log("hello world"); console.log("this is a test");

运行效果如下:

如何把JS代码生成字节码

生成字节码,读取、运行字节码。如此操作起来,并不复杂,如果量大的话,还是稍有些繁琐的。

另外使用JShaman对JS代码进行混淆加密,同样适用于nodejs代码加密,也是个非常不错的nodejs代码保护手段。

注意事项

用这个办法生成机器码,有一点是需要注意的,那就是:平台一致性,比如要在linux系统中运行,就要在Linux下生成;如果要在windows平台运行,就得在Windows中生成,否则生成的字节码文件无法正常使用。

“如何把JS代码生成字节码”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 如何把JS代码生成字节码

本文链接: https://www.lsjlt.com/news/81620.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何把JS代码生成字节码
    本篇内容介绍了“如何把JS代码生成字节码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!实现原理nodejs...
    99+
    2022-10-19
  • js生成二维码的示例代码
    前段时间项目中需要开发扫描二维码查看信息的功能,在网上查了一些资料,把用过的方法进行总结需要导入一个qrcode的js 插件。 插件链接: qrcode.js下载地址,点击即可下载 ...
    99+
    2022-11-11
  • LINQ代码如何生成字符串
    这篇文章主要为大家展示了“LINQ代码如何生成字符串”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“LINQ代码如何生成字符串”这篇文章吧。本文介绍生成随机序列和生成字符串,如果你在LINQ方面有...
    99+
    2023-06-17
  • JS如何生成条形码
    这篇文章主要介绍了JS如何生成条形码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、js代码:(function() { &nb...
    99+
    2022-10-19
  • windows条码生成器如何把条码变细
    本篇内容介绍了“windows条码生成器如何把条码变细”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!条码生成器把条码变细的方法先创建一个所需...
    99+
    2023-07-04
  • 如何进行C++代码的代码生成?
    如何进行C++代码的代码生成代码生成是软件开发中的一个重要环节,可以提高开发效率和代码质量。而对于C++开发来说,代码生成更是具有重要意义。本文将介绍如何进行C++代码的代码生成,帮助开发者提高开发效率和代码质量。使用模板库使用模板库是进行...
    99+
    2023-11-02
    - C++代码生成 - 代码自动生成 - C++编程工具
  • windows条码生成器如何生成递增数字的条码
    本篇内容主要讲解“windows条码生成器如何生成递增数字的条码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“windows条码生成器如何生成递增数字的条码”吧!条码生成器生成递增数字条码的方法...
    99+
    2023-07-04
  • python如何生成密码字典
    目录一、密码字典二、字典生成1.生成6位数小写字母+数字密码字典2.选择模式运行一、密码字典 所谓密码字典,主要是配合解密使用,一般情况用来暴力破解密码,是由指定字符排列组合组成的文...
    99+
    2022-11-13
  • C#如何生成汉字编码
    这篇文章主要介绍C#如何生成汉字编码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!C#生成汉字编码原理到底怎么办到随机生成汉字的呢?汉字从哪里来的呢?是不是有个后台数据表,其中存放了所需要的所有汉字,使用程序随机取出...
    99+
    2023-06-17
  • Python生成数字图片代码分享
    本文向大家分享了几段Python生成数字图片的代码,喜欢的朋友可以参考。具体如下: 最终版本 # -*- coding:utf-8 -*- from PIL import Image,ImageFont...
    99+
    2022-06-04
    代码 数字 图片
  • 基于JS实现二维码名片生成的示例代码
    目录演示技术栈源码cssjs演示 技术栈 这里用到了一个二维码生成库qrcode.js下面是简单介绍: //初始化QRCode对象 var qrcode = new QRCode...
    99+
    2022-11-13
  • VB.NET如何动态生成代码
    这篇文章主要为大家展示了“VB.NET如何动态生成代码”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET如何动态生成代码”这篇文章吧。首先是当程序员需要动态建立一个控件并将代码附着于控件...
    99+
    2023-06-17
  • js如何随机生成一个验证码
    这篇文章给大家分享的是有关js如何随机生成一个验证码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。效果:html代码:<p>验证码:</p>  ...
    99+
    2022-10-19
  • 如何使用canvas及js生成验证码
    这篇文章将为大家详细讲解有关如何使用canvas及js生成验证码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在很多时候都需要用到验证码,前端验证码需要知道Html5中的...
    99+
    2022-10-19
  • 纯js代码如何生成可搜索选择下拉列表
    这篇文章将为大家详细讲解有关纯js代码如何生成可搜索选择下拉列表,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、因为动态的css楼主写不出来,因此需要引入layui中的...
    99+
    2022-10-19
  • java 生成文字图片的示例代码
    本文主要介绍了java 生成文字图片的示例代码,分享给大家,具体如下:import java.awt.Color; import java.awt.Font; import java.awt.FontMetrics; import java...
    99+
    2023-05-31
    java 生成文字图片 ava
  • node文字生成图片的示例代码
    今天老板提了需求,要在服务端生成邀请卡,嗯…,简单的说就是把要这张: 变成差多这样的: 后端搞ruby的哥们搞了个html转图片,说转得太慢了,我就把这坑接下来了 所以睡前就倒腾了下,搞了个简...
    99+
    2022-06-04
    示例 文字 代码
  • c语言如何把字符转换成ascii码
    在C语言中,可以使用强制类型转换将字符转换为ASCII码。ASCII码是一个包含256个字符的标准字符编码,每个字符都有一个对应的A...
    99+
    2023-10-28
    c语言
  • javascript如何动态生成css代码
    这篇文章主要为大家展示了“javascript如何动态生成css代码”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“javascript如何动态生成css代码”这...
    99+
    2022-10-19
  • 如何使用IDEA代码生成器
    本篇内容主要讲解“如何使用IDEA代码生成器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用IDEA代码生成器”吧!基本使用IDEA 自带很多常用的动态模...
    99+
    2022-10-19
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作