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

js加解密入门

首先,让我们简单介绍一下百度公司的文心一言。文心一言是百度公司推出的一项文本生成工具,它可以根据给定的主题或关键词生成一句简短而富有启发性的文字。在我们的加密和解密方法中,我们将利用文心一言的特点来生成随机的字符串,并将其用作加密和解密的密钥。

下面是加密函数的代码示例:

function encrypt(text) {const key = getSecretKey();let result = "";for (let i = 0; i < text.length; i++) {const charCode = text.charCodeAt(i) ^ key.charCodeAt(i % key.length);result += String.fromCharCode(charCode);}return btoa(result);
}function getSecretKey() {const keywords = ["加密", "混淆", "解密", "保护"];const keyword = keywords[Math.floor(Math.random() * keywords.length)];const message = generateMessage(keyword);return btoa(message);
}function generateMessage(keyword) {const xhr = new XMLHttpRequest();const url = "https://xin.baidu.com/sfc/";xhr.open("POST", url, false);xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");xhr.send(JSON.stringify({key: keyword,pd: "wisdom",type: 3}));const response = JSON.parse(xhr.responseText);return response.data[0].text;
}

在这个示例中,我们定义了两个函数:encrypt()getSecretKey()encrypt()函数用于将给定的明文进行加密,并返回加密后的密文。getSecretKey()函数用于生成一个随机的密钥,并将其编码为base64字符串。

encrypt()函数中,我们使用XOR运算对明文进行加密。具体来说,我们使用密钥中的每个字符依次对明文中的字符进行异或运算,得到一个新的字符编码。最后,我们将所有新字符的编码组合起来,并将结果编码为base64字符串。

getSecretKey()函数中,我们定义了一个关键词列表,并从中随机选择一个关键词。然后,我们使用该关键词调用generateMessage()函数,从文心一言中生成一个随机的字符串。最后,我们将该字符串编码为base64字符串,并将其用作密钥。

下面是解密函数的代码示例:

function decrypt(cipher) {const key = atob(getSecretKey());const result = atob(cipher);let text = "";for (let i = 0; i < result.length; i++) {const charCode = result.charCodeAt(i) ^ key.charCodeAt(i % key.length);text += String.fromCharCode(charCode);}return text;
}

在解密函数decrypt()中,我们首先获取密钥,然后将密文解码为普通文本。接着,我们使用和加密函数相同的方式对密文进行解密,即使用密钥中的字符依次对密文中的字符进行异或运算,得到明文中的字符编码。最后,我们将所有新字符的编码组合起来,并将结果转换为普通文本。

需要注意的是,我们在使用atob()函数将base64字符串解码为普通字符串时,要确保该字符串是有效的base64格式。

总的来说,我们的加密和解密方法基于百度公司的文心一言,利用其生成随机字符串的特点,生成一个随机的密钥,并使用XOR运算对明文进行加密和密文进行解密。这种方法可以有效保护JavaScript代码的安全性和保密性,是一种非常实用的加密和解密方法。

jsjiami.com

如果您对文章内容有不同看法,或者疑问,欢迎到评论区留言,或者私信我都可以。

也可以到上方网站,底部有我联系方式详谈

如遇自己源码加密后没备份,可以找我们解决解出恢复源码,任何加密都可以。

相关文章:

js加解密入门

首先&#xff0c;让我们简单介绍一下百度公司的文心一言。文心一言是百度公司推出的一项文本生成工具&#xff0c;它可以根据给定的主题或关键词生成一句简短而富有启发性的文字。在我们的加密和解密方法中&#xff0c;我们将利用文心一言的特点来生成随机的字符串&#xff0c;…...

vue+Echarts导入自定义地图

在vue项目先安装echarts //在vue文件中的<script>中引入 import * as echarts from "echarts"; import geoJson from ../assets/map/Fmap.json; //自定义地图的位置 import * as topojson from "topojson-client"; //使用组件topojson-client自定…...

dp-组合总和 Ⅳ

给你一个由 不同 整数组成的数组 nums &#xff0c;和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。题目数据保证答案符合 32 位整数范围。示例 1&#xff1a;输入&#xff1a;nums [1,2,3], target 4输出&#xff1a;7解释&#xff1a;所…...

46-堆

目录 1.概念 2.表示 3.三大操作 4.代码实现最大堆&#xff08;基于数组&#xff0c;编号从0开始&#xff09; 4.1.根据孩子节点k获取当前父节点的索引 4.2.根据父节点k求左孩子节点下标 4.3.根据父节点k求右孩子节点下标 4.4.判空 4.5.toString()方法 4.6.判断数组中…...

Mysql高可用高性能存储应用系列3 - mysqld_multi配置主从集群

概述 主从复制要解决的问题&#xff0c;1)写操作锁表&#xff0c;影响读操作&#xff0c;影响业务。2)数据库备份。3)随着数据增加&#xff0c;I/O操作增多&#xff0c;单机出现瓶颈。 主从复制就是从服务器的主节点&#xff0c;复制到多个从节点&#xff0c;默认采用异步的方…...

天干地支(Java)

题目描述 古代中国使用天干地支来记录当前的年份。 天干一共有十个&#xff0c;分别为&#xff1a;甲&#xff08;jiǎ&#xff09;、乙&#xff08;yǐ&#xff09;、丙&#xff08;bǐng&#xff09;、丁&#xff08;dīng&#xff09;、戊&#xff08;w&#xff09;、己&a…...

码住,虹科工业树莓派应用小tips

在应用虹科工业树莓派进行项目开发的过程中&#xff0c;我们会应用到各种功能&#xff0c;部分功能看似不起眼&#xff0c;但是在实际应用开发过程中却非常重要。接下来虹科分享几个工业树莓派在应用过程中经常会遇到的几个问题&#xff0c;并分享解决方案&#xff0c;帮助大家…...

美国新规-带绳窗帘亚马逊ANSI/WCMA A100.1-20测试标准详解

亚马逊要求所有有线窗帘都经过测试&#xff0c;符合下列特定法规或标准要求&#xff1a; 商品法规/标准要求带绳窗帘以下所有项&#xff1a; 显示检测结果符合 ANSI/WCMA A100.1-2018&#xff08;带绳窗帘商品的美国国家安全标准&#xff09;的检测报告。 美国消费品安全委员…...

【华为OD机试 2023最新 】 模拟商场优惠打折(C++)

题目描述 模拟商场优惠打折,有三种优惠券可以用,满减券、打折券和无门槛券。 满减券:满100减10,满200减20,满300减30,满400减40,以此类推不限制使用; 打折券:固定折扣92折,且打折之后向下取整,每次购物只能用1次; 无门槛券:一张券减5元,没有使用限制。 每个…...

前端直接生成GIF动态图实践

前言去年在博客中发了两篇关于GIF动态生成的博客&#xff0c;GIF图像动态生成-JAVA后台生成和基于FFmpeg的Java视频Mp4转GIF初探&#xff0c;在这两篇博客中都是采用JAVA语言在后台进行转换。使用JAVA的同学经过自己的改造和开发也可以应用在项目上。前段时间有朋友私下问&…...

2023年Java岗面试八股文及答案整理(金三银四最新版)

春招&#xff0c;秋招&#xff0c;社招&#xff0c;我们Java程序员的面试之路&#xff0c;是挺难的&#xff0c;过了HR&#xff0c;还得被技术面&#xff0c;小刀在去各个厂面试的时候&#xff0c;经常是通宵睡不着觉&#xff0c;头发都脱了一大把&#xff0c;还好最终侥幸能够…...

centos8上安装redis

一、安装前准备 在安装Redis之前&#xff0c;需要确保CentOS 8系统已经安装了EPEL存储库和Redis的依赖库。 安装EPEL存储库 EPEL存储库是一个由Fedora项目提供的额外软件包仓库&#xff0c;包含了许多常用的软件包。在CentOS 8系统上&#xff0c;可以通过以下命令安装EPEL存储…...

新六级阅读通关特训

词汇题&#xff08;55道&#xff09; 1. You should carefully think over_____ the manager said at the meeting. A. that B. which C. what D. whose 1.选C,考察宾语从句连接词&#xff0c;主句谓语动词think over后面缺宾语&#xff0c;后面的宾语从句谓语动…...

【AI绘画】如何使用Google Colab安装Stable Diffusion

【AI绘画】如何在Colab安装的Stable Diffusion背景准备安装查看资源仓库跳转到Colab运行Stable Diffusion基础设置启动运行访问Stable Diffusion WebUI界面模型资源推荐背景 本地部署Stable Diffusion过程麻烦&#xff0c;对机器配置要求高&#xff0c;GPU 4G&#xff0c;然而…...

C++:STL架构图

STL架构图1&#xff1a;仿函数2&#xff1a;算法架构图算法库 再看一下这个实例 #include<vector> #include<algorithm> #include<functional> #include<iostream> using namespace std;int main() {int i[6] {1,2,3,4,5,6};vector<int,allocato…...

[Ubuntu][网络][教程]端口转发以及端口管理

1. 平台介绍 Ubuntu 20.04 LTS Armv7 2. 端口管理 进行端口转发之前&#xff0c;要先对端口进行一系列设置 2.1 安装ufw sudo apt install ufw2.2 开启22端口 开启ufw之后&#xff0c;默认的22端口不会自动打开&#xff0c;使用SSH的话需要手动打开 sudo ufw allow 22…...

@Scheduled 定时任务不执行

一、排查代码中添加的定时任务步骤是否正确 启动类上加 EnableScheduling 注解定时任务类上加Component定时方法上加Scheduled Scheduled(cron "0 19 16 * * ?")public void cron() {log.info("定时任务开启&#xff1a;---");}二、排查是否任务阻塞&am…...

我是怎样被卷的(二)

被卷的过程&#xff0c;虽然是辛苦种种&#xff08;加班熬夜陪着爆肝&#xff09;&#xff0c;但终有所值。没有这样的高压环境&#xff0c;我都不知道自己居然可以这么的优秀。 我要答复的问题&#xff0c;分为4类。一是我自己已经掌握的&#xff0c;二是需要找别人获取的&am…...

Linux- 浅谈ELF目标文件格式

理解了进程的描述和创建之后&#xff0c;自然会想到我们编写的可执行程序是如何作为一个进程工作的&#xff1f;这就涉及可执行文件的格式、编译、链接和装载等相关知识。 这里先提一个常见的名词“目标文件”&#xff0c;是指编译器生成的文件。“目标”指目标平台&#xff0c…...

C++ MVC模式

概述 C是一种流行的编程语言&#xff0c;它可以用于构建各种类型的应用程序&#xff0c;包括Web应用程序、桌面应用程序和移动应用程序。在这里&#xff0c;我将为您介绍C中的MVC模式&#xff0c;以及如何在C中实现MVC模式。 MVC&#xff08;Model-View-Controller&#xff0…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1&#xff09;准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2&#xff09;服务端安装软件&#xff1a;bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

【C++进阶篇】智能指针

C内存管理终极指南&#xff1a;智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

加密通信 + 行为分析:运营商行业安全防御体系重构

在数字经济蓬勃发展的时代&#xff0c;运营商作为信息通信网络的核心枢纽&#xff0c;承载着海量用户数据与关键业务传输&#xff0c;其安全防御体系的可靠性直接关乎国家安全、社会稳定与企业发展。随着网络攻击手段的不断升级&#xff0c;传统安全防护体系逐渐暴露出局限性&a…...