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

news2024/11/29 0:48:42

在这里插入图片描述

前言

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

示例源代码

// 字符串加密示例
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”。
    • 这些操作符产生的结果被存储在数组中,然后使用join函数连接成一个字符串,形成了加密后的字符串"[object Object]undefinedtrue0-0-1"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1145828.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】STL容器——探究不同 [ 迭代器 ] 种类&在STL中的使用方式(15)

前言 大家好吖,欢迎来到 YY 滴C系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! 目录 引言:一.查看STL使用文档时…

redis6.0源码分析:简单动态字符串sds

文章目录 sds简介与特性(面试)sds结构模型数据结构苛刻的数据优化数据结构优化uintX_t对齐填充 sds优势O(1)时间复杂度获取字符串长度二进制安全杜绝缓冲区溢出自动扩容机制——sdsMakeRoomFor方法 内存重分配次数优化 sds最长是多少部分API源码解读创建sds释放sds sds简介与特…

localhost知识

文章目录 一、localhost是什么?二、localhost 在平时用到的地方三、 localhost 与 127.0.01 一、localhost是什么? localhost 是一个特殊的主机名,通常指代本机。它被用来进行本地开发和测试,也常被用作网络配置中的占位符&#…

IOC课程整理-6 Spring IoC 依赖注入

1 依赖注入的模式和类型 模式 类型 2 自动绑定(Autowiring) 官方定义 “自动装配是Spring框架中一种机制,用于自动解析和满足bean之间的依赖关系。通过自动装配,Spring容器可以根据类型、名称或其他属性来自动连接协作的bean&…

Mac电脑配置Dart编程环境

1.安装Dart SDK 官网地址:https://dart.dev/get-dart $brew tap dart-lang/dart$brew install dart 安装后,用命令检测一下是否安装正常。 $brew info dart 2.VS Code配置Dart环境 1).安装VS Code 官网地址:https://code.visualstudio.c…

删除元素专题

这篇也是凑数的 ... 题目 : LeetCode 27.移除元素 : 27. 移除元素 分析 : 快慢指针 : 定义两个指针slow和fast,初始值都是0。Slow之前的位置都是有效部分,fast表示当前要访问的元素。 这样遍历的时候,fast不断向后移动: 如果nums[fast…

解决MySQL大版本升级导致.Net(C#)程序连接报错问题

数据库版本从MySQL 5.7.21 升级到 MySQL8.0.21 数据升级完成后&#xff0c;直接修改程序的数据库连接配置信息 <connectionStrings> <add name"myConnectionString" connectionString"server192.168.31.200;uidapp;pwdFgTDkn0q!75;databasemail;&q…

【Java 进阶篇】Java Request 获取请求参数的通用方式详解

在Java Web开发中&#xff0c;获取HTTP请求的参数是一项基本任务。请求参数可以包含在URL中&#xff0c;也可以包含在请求体中&#xff0c;例如表单提交时的参数。在Java中&#xff0c;可以使用HttpServletRequest对象来获取HTTP请求的参数。本文将详细解释如何使用Java获取HTT…

基于vue天气数据可视化平台

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

070:mapboxGL加载含有shp文件的zip,显示图形

第070个 点击查看专栏目录 本示例是介绍演示如何在vue+mapbox中加载含有shp文件的zip,在地图上显示图形。这里先通过转换生成geojson文件,然后在地图上渲染图形,同时使用fitBounds将数据放置到可视的范围内。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 …

​Vue3响应式原理

目录 手动收集依赖通知更新 effect()&#xff1a;更改数据后执行&#xff0c;更新依赖该数据的数据&#xff08;依赖&#xff09; track&#xff08;&#xff09;收集依赖的effect()放进dep&#xff08;set去重&#xff09; 更新时触发trigger函数通知dep里所有effect()执行…

代码训练营第53天:动态规划part12|leetcode309买卖股票的最佳时期含冷静期|leetcode714买卖股票的最佳时机含手续费

leetcode309&#xff1a;买卖股票的最佳时机含冷冻期 文章讲解&#xff1a;leletcode309 leetcode714&#xff1a;买卖股票的最佳时机含手续费 文章讲解&#xff1a;leetcode714 目录 1&#xff0c;leetcode309 买卖股票的最佳时机含冷冻期 2&#xff0c;leetcode714 买卖股票…

Qt中实现页面切换的两种方式

文章目录 方式一 &#xff1a;使用QStackedWidget讲解代码结构main.cpp完整代码运行结果&#xff1a; 方式二 &#xff1a;代码结构完整代码mainwindow.hnewmainwindow.hmain.cppmainwindow.cppnewmainwindow.cppmainwindow.uinewmainwindow.ui 效果 方式一 &#xff1a;使用QS…

目标检测YOLO实战应用案例100讲-改进YOLOv4的遥感图像目标检测

目录 前言 遥感图像目标检测国内外研究现状 传统遥感图像目标检测算法 深度学习遥感图像目标检测算法 2目标检测相关理论基础 2.1卷积神经网络 2.1.1基础理论 2.1.2卷积神经网络训练参数优化方式 2.2目标检测经典算法 2.2.1 两阶段目标检测算法 2.2.2 单阶段…

python opencv之图像分割、计算面积

以下代码是一个基于K-means聚类算法进行图像分割的实现。通过读取一个彩色图像&#xff0c;将其转化为二维数组形式。然后使用K-means算法对像素点进行聚类&#xff0c;聚类个数为7。根据聚类后的标签值对像素点进行着色&#xff0c;并创建掩膜图像。接着使用形态学开运算和闭运…

071:mapboxGL上传含shp的zip文件,在map上解析显示图形

第071个 点击查看专栏目录 本示例是介绍演示如何在vue+mapbox中上传含有shp文件的zip,在地图上显示图形。这里先通过上传解压解析,转换生成geojson文件,然后在地图上渲染图形。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果所用的zip文…

嵌入式开发

C语言 #include<stdio.h> #include<cstdio> volatile unsigned int TimeOut ; unsigned int cnt 0;//使用volatile变量情景&#xff1a; //1、中断 //2、多线程 //3、寄存器void isr_handle(int a) {cnt;if (cnt > 100){TimeOut 1;cnt 0;printf("cnt %…

JVM虚拟机详解

目录 01JVM由哪些部分组成/运行流程 什么是程序计数器 详细介绍堆 介绍方法区&#xff08;Method Area&#xff09; 直接内存 虚拟机栈(Java Virtual machine Stacks) 垃圾回收是否涉及栈内存 栈内存分配越大越好吗 方法内的局部变量是否线程安全 什么情况下会导致栈…

openpnp - src - 配置文件载入过程的初步分析

文章目录 openpnp - src - 配置文件载入过程的初步分析概述笔记自己编译用的git版本报错截图问题1 - 怎么在调试状态下, 定位到抛异常的第一现场?结合单步调试找到的现场, 来分析报错的原因openpnp配置文件读取的流程END openpnp - src - 配置文件载入过程的初步分析 概述 从…

MATLAB 安装教程(最新最全图文详解)

目录 一.简介 二.安装步骤 软件&#xff1a;MATLAB版本&#xff1a;2022b语言&#xff1a;简体中文大小&#xff1a;19.37G安装环境&#xff1a;Win11/Win10硬件要求&#xff1a;CPU2.6GHz 内存8G(或更高&#xff09;下载通道①百度网盘丨64位下载链接&#xff1a; https://pa…