Vue用JSEncrypt对长文本json加密以及发现解密失败

news2024/12/26 2:57:43

哈喽 大家好啊,最近发现进行加密后 超长文本后端解密失败,经过看其他博主修改

JSEncrypt原生代码如下:

 

 

 // 分段加密,支持中文
     JSEncrypt.prototype.encryptUnicodeLong = function (string) {
         var k = this.getKey();
         //根据key所能编码的最大长度来定分段长度。key size - 11:11字节随机padding使每次加密结果都不同。
         var maxLength = ((k.n.bitLength()+7)>>3)-11;
         try {
             var subStr="", encryptedString = "";
             var subStart = 0, subEnd=0;
             var bitLen=0, tmpPoint=0;
             for(var i = 0, len = string.length; i < len; i++){
                 //js 是使用 Unicode 编码的,每个字符所占用的字节数不同
                 var charCode = string.charCodeAt(i);
                 if(charCode <= 0x007f) {
                     bitLen += 1;
                 }else if(charCode <= 0x07ff){
                     bitLen += 2;
                 }else if(charCode <= 0xffff){
                     bitLen += 3;
                 }else{
                     bitLen += 4;
                 }
                 //字节数到达上限,获取子字符串加密并追加到总字符串后。更新下一个字符串起始位置及字节计算。
                 if(bitLen>maxLength){
                     subStr=string.substring(subStart,subEnd)
                     encryptedString += k.encrypt(subStr);
                     subStart=subEnd;
                     bitLen=bitLen-tmpPoint;
                 }else{
                     subEnd=i;
                     tmpPoint=bitLen;
                 }
             }
             subStr=string.substring(subStart,len)
             encryptedString += k.encrypt(subStr);
             return hex2b64(encryptedString);
         } catch (ex) {
             return false;
         }
     };

这个源码算法 我还是不是太懂啦 但是目前已经测试成功

原博主:

前端RSA加密解密:支持中文 - 基于jsencrypt使用任意长度密钥,对任意长度字符串进行分段加解密_encryptunicodelong_小傻哥的博客-CSDN博客

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

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

相关文章

由小波变换模极大值重建信号

给定信号&#xff0c; 令小波变换的尺度 则x(t)的二进小波变换为 令为取模极大值时的横坐标&#xff0c;那么就是模极大值。 目标是由坐标、模极大值及最后一级的低频分量重建信号x(t) 为了重建x(t)&#xff0c;假定有一信号集合h(t)&#xff0c;该集合中信号的小波变换和x(…

JavaScript请求数据的4种方法总结(Ajax、fetch、jQuery、axios)

JavaScript请求数据有4种主流方式&#xff0c;分别是Ajax、fetch、jQuery和axios。 一、Ajax、fetch、jQuery和axios的详细解释&#xff1a; 1、 Ajax Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;是一种使用JavaScript在用户的浏览器上发送请求的技术&…

分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测

分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测 目录 分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测 2.代码说明&#xff1a;要求于Matlab 2021版及以上版本。 程序…

kernel的config加上 CONFIG_SND_ALOOP=y ,aplay不能播放声音

概念&#xff1a;CONFIG_SND_ALOOP CONFIG_SND_ALOOP 是 Linux 内核配置选项之一&#xff0c;用于启用 ALSA Loopback 驱动程序。 ALSA&#xff08;Advanced Linux Sound Architecture&#xff09;是 Linux 上的音频架构&#xff0c;提供了一个统一的音频接口&#xff0c;使应…

雷军写的代码上热搜了

“雷军写的代码”一词突然上了微博热搜&#xff1a; 一瞬间&#xff0c;我想起了这张图&#xff1a; 到底发生了什么&#xff0c;好奇的我点进去一看&#xff0c;原来是因为雷军预告年度演讲的微博里配了一张海报&#xff1a; 这张海报信息量非常大&#xff0c;一眼就能看到有很…

如何使用Vue和C++实现OJ《从零开始打造 Online Judge》

课程简介 课程链接&#xff1a;https://www.lanqiao.cn/courses/20638 邀请码&#xff1a;x8pGd60V 本课程采用前后端分离架构&#xff0c;基于 Vue.js 和 C 技术&#xff0c;从零开始打造 Online Judge。 课程介绍 OJ 是 Online Judge 系统的简称&#xff0c;用来在线检测…

算法通关村第3关【白银】| 双指针思想

1. 双指针思想 双指针不仅指两个指针&#xff0c;也可以是两个变量&#xff0c;指向两个值。 有三种类型&#xff1a; 快慢型&#xff1a;一前一后对撞型&#xff1a;从两端向中间靠拢背向型&#xff1a;从中间向两端分开 2. 删除元素专题 2.1原地移除元素 (1)快慢指针 思…

我的创作纪念日(128天)

机缘 CSDN账号创建已有3年了&#xff0c;本篇是第一篇纪念文。。。有点偷懒的感觉了。。。 从第一篇文章的发布&#xff0c;到现在已经过了128天了&#xff0c;回想起当时发布文章的原因&#xff0c;仅仅只是因为找不到合适的云笔记&#xff0c;鬼使神差的想到了CSDN&#xff…

第十一课:Qt 快捷键大全

功能描述&#xff1a;Qt 中的快捷键查看方式和自定义快捷键 一、快捷键查看/自定义 Qt Creator 中提供了各种快捷键&#xff0c;如需查看或自定义快捷键&#xff0c;选择菜单栏“工具” -> “选项” -> “环境” -> “键盘”。 快捷键按类别列出&#xff0c;可以在过…

Windows 11 + Ubuntu20.04 双系统 坑里爬起来

ThinkPad x390 安装双系统&#xff0c;原有的磁盘太小&#xff0c;扩充了磁盘重新装系统&#xff0c;出现的问题&#xff0c;加以记录。 1. windows和ubuntu谁先安装&#xff0c;两个都可以&#xff0c;一般建议先安装windows&#xff0c;后安装ubuntu 2. 安装windows后&…

小O网兜0231新版 -- 用户入门指南

本文介绍小O网兜入门功能&#xff0c;通过本文用户能够掌握数据采集的基本操作&#xff0c;使用软件提供的模板任务采集指定页面的数据。 基本概念 任务文件&#xff1a;新建任务文件&#xff0c;扩展名为 xop&#xff0c;任务的配置、采集数据等信息保存在该文件中&#xff…

Android进阶之路 - 去除EditText内边距

正如题名&#xff0c;在Android中的EditText是自带内边距的&#xff0c;常规而言设置背景为null即可&#xff0c;但是因为使用了并不熟悉的声明式框架&#xff0c;本是几分钟解决的事儿&#xff0c;却花费了小半天~ 其实这只是一个很简单的小需求&#xff0c;不想却遇到了一些小…

WIN+ALT+R无法开始录制

winr打开注册表regedit 依次展开 计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\GameDVR 修改AppCaptureEnabled数值为1 wing打开 Xbox Game Bar点击捕获 WINALTR开始录制

Zabbix技术分享——Proxy加密代理:共享密钥(PSK)加密与证书加密

一、加密介绍 Zabbix版本从3.0之后&#xff0c;开始支持Zabbix server, Zabbix proxy, Zabbix agent, zabbix_sender and zabbix_get之间的通信加密&#xff0c;加密方式有预共享密钥(PSK)和证书加密&#xff0c;加密配置是可选项&#xff0c;一些proxy和agent可以使用证书认证…

PHP-MD5注入

0x00 前言 有些零散的知识未曾关注过&#xff0c;偶然捡起反而更加欢喜。 0x01 md5 注入绕过 md5函数有两个参数&#xff0c;第一个参数是要进行md5的值&#xff0c;第二个值默认为false&#xff0c;如果为true则返回16位原始二进制格式的字符串。意思就是会将md5后的结果当…

网络

mcq Java 传输层&#xff1a;拆分和组装&#xff0c;完成端到端的消息传递&#xff0c;流量控制&#xff0c;差错控制等 网络层&#xff1a; 寻址、路由&#xff0c;复用&#xff0c;拥塞控制&#xff0c;完成源到宿的传递。 显然A选项是错误的&#xff0c;有流量控制的是传输层…

谷歌推出首款量子弹性 FIDO2 安全密钥

谷歌在本周二宣布推出首个量子弹性 FIDO2 安全密钥&#xff0c;作为其 OpenSK 安全密钥计划的一部分。 Elie Bursztein和Fabian Kaczmarczyck表示&#xff1a;这一开源硬件优化的实现采用了一种新颖的ECC/Dilithium混合签名模式&#xff0c;它结合了ECC抵御标准攻击的安全性和…

MySQL的安装以及卸载

下载官网 https://www.mysql.com/ 切到下载tab页 找到 MySQL Community Server 或者 MySQL Community (GPL) Downloads --> MySQL Community Server 点击download按钮&#xff1a; 点击download进入下载页面选择No thanks, just start my download就可以开始下载了。 下…

sqlserver数据库导出到mysql

爱到分才显珍贵&#xff0c;很多人都不懂珍惜拥有&#xff0c;只到失去才看到&#xff0c;其实那最熟悉的才最珍贵的。 这里只介绍一种方式&#xff0c;有很多的方式。 1.使用Navicat 安装 下载 2.工具 数据传输 3.选择源和目标 然后开始 4.最好导入前备份一下库

C++学习系列之动态库报错问题

C学习系列之动态库报错问题 啰嗦问题解决总结 啰嗦 动态库已建&#xff0c;C文件一加&#xff0c;全是报错&#xff0c;一片红。 问题 解决 解决办法就是加标头 总结 小问题&#xff0c;记录一下。