当前位置: 首页 > news >正文

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

相关文章:

  • 【ROS入门】机器人系统仿真——URDF集成Gazebo
  • 互联多区域电网的负荷频率控制研究
  • 【java学习—九】模板方法(TemplateMethod)设计模式(4)
  • 【MyBatis Plus】初识 MyBatis Plus,在 Spring Boot 项目中集成 MyBatis Plus,理解常用注解以及常见配置
  • Centos7 安装和配置 Redis 5 教程
  • 使用 RAG、Langchain 和 Streamlit 制作用于文档问答的 AI 聊天机器人
  • 论文阅读——RoBERTa
  • springboot项目打jar包,运行时提示jar中没有主清单属性
  • 【Codeforces】 CF79D Password
  • 叛乱沙漠风暴server安装 ubuntu 22.04
  • ES6中的新增属性——解构赋值
  • 行业追踪,2023-10-27
  • Qt QWebEngine 更换语言
  • Docker一键开启、停止和删除所有容器
  • 2016年亚太杯APMCM数学建模大赛B题化学元素对变形钢筋性能的影响求解全过程文档及程序
  • 美颜SDK集成指南:为应用添加视频美颜功能
  • AquilaChat2-34B 主观评测接近GPT3.5水平,最新版本Base和Chat权重已开源!
  • useGeneratedKeys=“true“ keyProperty=“id“
  • Java 浅拷贝会带来的问题
  • Monocle 3 | 太牛了!单细胞必学R包!~(二)(寻找marker及注释细胞)
  • 简述JVM
  • 【多线程面试题 六】、 如何实现线程同步?
  • 地面文物古迹保护方案,用科技为文物古迹撑起“智慧伞”
  • k8s之Flannel网络插件安装提示forbidden无权限
  • 在微信小程序云开发中引入Vant Weapp组件库
  • Vue+ElementUI项目打包部署到Ubuntu服务器中
  • 面试题收集——Java基础部分(一)
  • Vue中this指向问题
  • 【iPad已停用】解锁教程
  • python不调用heapq库 实现大顶堆,小顶堆