首页 > 其他分享 >js代码加密,保护js文件刻不容缓

js代码加密,保护js文件刻不容缓

时间:2023-07-04 14:44:07浏览次数:39  
标签:en const 代码 js 刻不容缓 console 加密

随着互联网的高速发展,网站运行的javaSCRIPT代码常常被别人轻易的拷贝,因此程序员不得不对想办法保护自的代码---javascript加密。现在网络上面有太多的拿来主义,当然这也是没有办法避免的一种现象,网络的开放性使得一切都没有什么秘密可言,所以代码加密便顺应而产生。

js代码加密,保护js文件刻不容缓。那么常用的js加密有哪些?

一:JavaScript的原生函数escape()和unescape()

var code = 'console.log("hello")';
var en = escape(code); // console.log%28%22hello%22%29
var de = unescape(en); // console.log("hello")
document.write(en, '     ', de)


用函数加密后,字符变成了%开头形式的特殊编码。

我们也可以用unescape把加密后的js解密回来

二:md5

MD5算法的原理可简要的叙述为:MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。

md5加密一般用于确保文件和代码的唯一性,可以根据计算代码的md5值来判断代码是否被改变。

三:des/aes
DES是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用。

四:rsa

RSA是被研究得最广泛的公钥算法,从提出到现在已近三十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。

const NodeRSA = require('node-rsa');
const key = new NodeRSA({b: 512});
const text = 'Hello RSA!';
const encrypted = key.encrypt(text, 'base64');
console.log('encrypted: ', encrypted);
const decrypted = key.decrypt(encrypted, 'utf8');
console.log('decrypted: ', decrypted);


五:base64

Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法

浏览器的window对象默认就有base64的加解密函数

const code = '(function(){ alert(\'hello\') }())'
const en = window.btoa(code); // 加密
const de = window.atob(en); // 解密


​以上这些都是比较常见得加密方式,另外还有sha1,sha256。

如果觉得上边这些加密方式还不够安全,无法达到你的预期,可以使用sojson.v6加密,加密强度在国内排名第一,作者每年都会更新加密算法,不停增加加密强度,既保证了js的运行速度又保证了js的安全性。

 

标签:en,const,代码,js,刻不容缓,console,加密
From: https://www.cnblogs.com/jsjiamiV7/p/17525711.html

相关文章

  • 直播源码开发,js 数据的创建时间是否大于30天或相隔天数
    直播源码开发,js数据的创建时间是否大于30天或相隔天数//获取当前时间varday=newDate();//数据库的数据创建时间vartime=creationTime;//把当前时间数据库时间转换成毫秒数varstarDate=Date.parse(time);varendDate=Date.parse(day);//当前时间毫秒数减去创建时间......
  • vscode打开settings.json方法
    cmd+shift+p,输入settingOpenWorkspaceSettings也会打开UI设置界面;OpenUserSettings(JSON)会打开用户设置settings.json文件;OpenWorkspaceSettings(JSON)会打开工作区设置settings.json文件vscode存在两种设置settings.json的方式UserSettings用户设置:......
  • JS逆向实战20——某头条jsvm逆向
    声明本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!网站目标网站:aHR0cHM6Ly93d3cudG91dGlhby5jb20v数据接口:aHR0cHM6Ly93d3cudG91dGlhby5jb20vYXBpL3BjL2xp......
  • unity前后端通信 json解析 HTTP POST(BestHttp插件实现)
    1.配置请求体中的Json字符串1request_data=newRequestBodyClass();2request_data.a="Json第一个字段";3request_data.b="Json第二个字段";4stringbody=JsonUtility.ToJson(request_data);2.实例化HTTPRequest,请求头方法设置为POST,并且设置请求头中类型为json......
  • 实战项目:构建基于Spring Boot和Vue.js的金融项目分享
    学习SpringBoot和Vue.js结合的前后端分离项目可以按照以下步骤进行:掌握SpringBoot:学习SpringBoot的基本概念和核心特性,如自动配置、起步依赖、注解驱动等。了解Spring框架的基本知识,如IoC容器、AOP、MVC模式等。学习Vue.js:学习Vue.js的基本语法、指令和组件,理解Vue实例、数据绑......
  • 认识soui4js(第4篇):定义一个窗口类并显示
    soui4js基于soui4设计实现。首先我们看一下soui4中如何定义一个窗口类。soui4最基本的窗口类是SHostWnd和SHostDialog,它需要一个布局xml。假定布局xml在资源包中的位置为:layout:maindlg。那么soui4中定义一个窗口可以是下面的代码(为了演示方便,这里使用SHostDialog):SHostDia......
  • idea配置vue.js启动vue项目
    最近老师给力一个项目比赛,那个是前后端分离的。我之前了解过一些,我也配置过idea的vue.js,但是好久不用忘了。所以重新找回了一下:  ......
  • js的中的函数(一)
    函数的定义函数本质上是自变量和因变量之间关系的一种抽象描述,在JavaScript中我们这样定义一个函数:functionadd(a,b){returna+b;}上述add函数的定义如下:function指出这是一个函数定义;add是函数的名称;(a,b)括号内列出函数的参数,多个参数以,分隔;{...}之......
  • Three.js教程:网格模型
    推荐:将NSDT场景编辑器加到你的3D工具链工具集:NSDT简石数字孪生网格模型(三角形概念)本节课给大家演示网格模型Mesh渲染自定义几何体BufferGeometry的顶点坐标,通过这样一个例子帮助大家建立**三角形(面)**的概念三角形(面)网格模型Mesh其实就一个一个三角形(面)拼接构成。使......
  • vue项目中的package.json的private选项的作用
    {"name":"项目名称","description":"描述","version":"版本","private":true,"author":"testTeam","license":"MIT",}如果你在你的package.j......