首页 > 其他分享 >JS加密/解密之逻辑运算符加密进阶篇

JS加密/解密之逻辑运算符加密进阶篇

时间:2023-10-28 18:31:54浏览次数:30  
标签:转换成 加密 解密 JS 运算符 let World

JS加密/解密之逻辑运算符加密进阶篇_JS安全

  • 前言

前篇给大家介绍了运算符不为人知的基础知识。他们的各种表达形式,今天我们从这个基础上,继续进一步告诉大家,如何对字符串进行加密处理。还是那句话,技术人不废话,直接晒代码。

示例源代码

// 字符串加密示例
let str = "Hello World";

// 加密
let encryptedString = [
  [] + [] + [] + [] + [] + [] + [] + [],
  ![] + [] + [] + [] + [] + [] + [] + [],
  !![] + [] + [] + [] + [] + [] + [] + [],
  +[] + [] + [] + [] + [] + [] + [] + [],
  -[] + [] + [] + [] + [] + [] + [] + [],
  ~[] + [] + [] + [] + [] + [] + [] + []
].join("");

console.log(encryptedString); // 输出:"[object Object]undefinedtrue0-0-1"

// 解密
let decryptedString = eval("String.fromCharCode(" + encryptedString.match(/\d+/g).join(",") + ")");
console.log(decryptedString); // 输出:"Hello World"

测试

很多简单的加密,都可以通过一键JS解密去解开。我们可以把上边的代码丢进去测试一下看是否可以直接解出来。这个JS一键解密是jsjiami官网的功能。经测试该加密无法一键解开,安全性还是有的。

原理分析

  1. 字符串定义: 代码一开始定义了字符串"Hello World",我们将对其进行加密和解密操作。
  2. 加密操作:
  • 在加密部分,我们使用了一系列操作符来表示不同的字符:
  • [] + [] 会转换成"undefined"
  • ![] 会转换成false,加上[]后变成`"false"。
  • !![] 会转换成true,加上[]后变成`"true"。
  • +[] 会转换成数字0,加上[]后变成`"0"。
  • -[] 会转换成数字-0,加上[]后变成`"0"。
  • ~[] 会转换成数字-1,加上[]后变成`"-1"。

标签:转换成,加密,解密,JS,运算符,let,World
From: https://blog.51cto.com/u_15781271/8072656

相关文章

  • thymeleaf引用JS加随机数防止缓存
    一、运行环境1、Thymeleaf2.2.22、SpringBoot2.6.4二、实际代码<scriptth:src="@{/back/js/cloud/manageAddress.js(__${#httpServletRequest.getSession().getId()}__)}"></script>说点废话。都说ChatGPT智能,至少我感觉3.5一般国内有人搭建了要收费 其实ChatGPT对写代码还是......
  • 基于jquery+html开发的json格式校验工具
    json简介JSON是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLanguage,StandardECMA-2623rdEdition-December1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++......
  • 【每日例题】蓝桥杯 C语言 凯撒加密
    凯撒加密题目题目描述给定一个单词,请使用凯撒密码将这个单词加密。凯撒密码是—种替换加密的技术,单词中的所有字母都在字母表上向后偏移3位后被替换成密文。即α变为d,b变为e,·,w变为z,Z变为a,g变为b,z变为c。输入描述输入格式:输入一行,包含一个单词,单词中只包含小写英文字母,单词中......
  • js聚焦并将光标定位到输入框和可编辑DIV的最后
    //聚焦并将光标定位的文本末尾---div//letdom=$('.demonstrate-li-input').eq(i).focus()//letrange=document.createRange()//创建一个新的范围对象//letsel=window.getSelection()//获取当前选区对象......
  • 动态金额 jsonArray 计算
    动态金额jsonArray计算数据格式[{"name":"福利卡券","type":"WELFARE_CARD_COUPON","useNum":0.01},{"name":"现金","type":"CASH","useNum":12.26}]相加/***cos......
  • 5款在线JavaScript加密混淆工具
    5款常用、好用的在线JavaScript加密混淆工具,网址请从截图中查看。1、jscrambler2、JShaman3、javascriptobfuscator4、freejsobfuscator5、jjencode......
  • Vue.js框架:vue3引入mockjs模拟数据调试
    一、引入依赖1、安装依赖包在终端中使用以下命令:npminstall@types/mockjs--save此处使用了@types进行引入,是因为在.ts文件引用包时,默认必须有类型声明,不能是any。有很多依赖包是用纯JS写的,没有类型声明。因此使用@types作为类型声明的集......
  • 用HashMap创建jString,ArrayList的键值对用entrySet遍历
    用HashMap创建jString,ArrayList的键值对用entrySet遍历package随机点名器;importjava.util.*;publicclassTest1{publicstaticvoidmain(String[]args){HashMap<String,ArrayList<String>>m=newHashMap<>();ArrayList<String>......
  • 用友GRP-U8 license_check.jsp sql注入漏洞
    漏洞描述用友GRP-U8license_check.jsp存在sql注入,攻击者可利用该漏洞执行任意SQL语句,如查询数据、下载数据、写入webshell、执行系统命令以及绕过登录限制等。漏洞复现fofa语法:app="用友-GRP-U8"登录页面如下:POC:/u8qx/license_check.jsp?kjnd=1%27;WAITFOR%20DELAY%20%2......
  • 用友U8-Cloud upload.jsp 任意文件上传漏洞
    漏洞简介U8cloud聚焦成长型、创新型企业的云ERP,基于全新的企业互联网应用设计理念,为企业提供集人财物客、产供销于一体的云ERP整体解决方案,全面支持多组织业务协同、智能财务,人力服务、构建产业链智造平台,融合用友云服务实现企业互联网资源连接、共享、协同。该系统upload.......