网页源码加密JavaScript程序,有效压缩和加密JS、Html、Css页面数据

news2024/9/22 21:19:50

我们知道,基于Des或Aes对称加密时,当明文和密码相同,则密文相同。而我们此次发布是WJLSymmetricEncryption4.js(点击链接跳转到下载页面)加密程序,当明文和密码相同,每次加密后的密文不相同,于是进一步让密文具有很大的随机性,但是又不影响正确译码。
以聊天为例,现在市面上也有不少的加密聊天系统,您一定存在一个疑惑,比如:服务器端是不是有所有的聊天记录?又比如我的聊天信息在电脑上支接显示了,会不会窥屏和截屏?
作为一个算法,应用方法是很灵活的。本文只是给出一些加密的样例和截图。

一、本算法的特征
1、支持中文密码和中文加解密,可以用于链接地址的加解密;
2、可以针对js加密,不过需要用eval()函数;
3、相同的密码和明文每次加密后的结果不同;
4、具有压缩效果,针对html页面或样式,能有效无损压缩一定的量,加快文件传输的效率,有些页面可以压缩80%以上;
5、纯国产算法,从数学底层就是我国自主的数学模型——加权概率模型,然后结合了安全盒子和轮函数;

二、函数说明
本JavaScript包含了两组函数,分别为:
(a)第一组是主加解密函数:

/*******************************************************
加密字符串或字节数组的主函数
InputDatas 可以是字符串,也可以是字节数组,在函数中会做类型判断,建议直接使用字符串,因为程序中具备中文处理的函数
passwords 密码,支持中文,长度不限
systemid 必须是数字,在调用或使用时一定要传递的是int型的数字,主要是给使用者提供一个不同页面或功能,加解密的编号,而且编号不同,密文也不同,是加密程序的秘钥
返回加密后的十六进制字符串
*******************************************************/
Encrypting(InputDatas, passwords, systemid);
/*******************************************************
解密字符串或字节数组的主函数
InputDatas 加密后的密文,一般为十六进制的字符串
passwords 密码,支持中文,长度不限,必须是相同的密码才能正确解密
systemid 请一定要是数字,否则可能出现无法解密的情形,当然也必须和加密时的systemid一致
返回解密后的字符串
*******************************************************/
Decrypting(InputDatas, passwords, systemid);

(b)第二组是做了一个简单的通过提问和回答加密passwords的函数:

/*******************************************************
有一些场景,需要同步一下密码才能解密,但是必须是有限范围内的用户才能查看
question 提问,给准入的用户查看,明文
answer 针对question的回答,这个回答是加密时的秘钥
passwords 密码,需要解密网页部分资源的密码
systemid 必须是数字,主要是做一些页面、地域或其他方面的区分,int型的值
返回加密后的十六进制字符串
*******************************************************/
encrypt(question, answer, passwords, systemid);
/*******************************************************
解密字符串或字节数组的主函数
InputDatas 加密后的密文
question 提问,给准入的用户查看,必须和encrypt函数一致
answer 针对question的回答,必须和encrypt函数一致
systemid 必须和encrypt函数一致
返回解密后的passwords
*******************************************************/
decrypt(InputDatas, question, answer, systemid);

三、使用方法
(1)encrypt和decrypt的使用方法
首先包含<script src="WJLSymmetricEncryption4_min.js"></script>
然后则是下面的测试代码:

<script language="javascript">
var password = "12345678abcdAbcd,中文测试,欢迎使用";
var question = "我所在的公司名称?";
var answer = "湖南遥昇通信技术有限公司";
var systemid = 1001;

var cc = encrypt(question, answer, password, systemid);
alert(cc); 
var dd = decrypt(cc, question, answer, systemid);
alert(dd);

</script>

第一次加密后的结果为:
在这里插入图片描述
解密结果为:
在这里插入图片描述
第二次次加密后的结果为:
在这里插入图片描述
解密结果为:
在这里插入图片描述
不难看出,加密的两次结果是不相同的,但是能正确解密出密码。
(2)Encrypting和Decrypting的使用方法
首先还是包含<script src="WJLSymmetricEncryption4_min.js"></script>
然后则是下面的测试代码:

<script language="javascript">
var password = "12345678abcdAbcd,中文测试,欢迎使用";
var InputDatas = "湖南遥昇通信技术有限公司";
var systemid = 1001;

var cc = Encrypting(InputDatas, password, systemid);
alert(cc); 
var dd = Decrypting(cc, password, systemid);
alert(dd);

</script>

两次加密的结果为:
在这里插入图片描述
在这里插入图片描述
两次都能正确解密:
在这里插入图片描述
至于输入待加密信息长度目前是不限的,大家可以自行处理,而且支持特殊的中文汉字。

四、真正意义上的加密聊天系统
传统的加密聊天,您一定存在一个疑惑,比如:服务器端是不是有所有的聊天记录?又比如我的聊天信息在电脑上支接显示了,会不会窥屏和截屏?如果所有的网页聊天,服务器存储的永远都是密文,而每条信息都是以密文的发送到服务器,而且只有某些能正确回答答案的人才能解密查看明文信息,那么就能有效打消这个疑虑。
为此我特意提出一种前端消息加密的架构如下图:
在这里插入图片描述
怎么开发,相信很多做B/S架构的朋友能开发出来,而且跟后端语言无关,用php、java、C或C++都是可以的。从上面的架构不难看出:
1、 采用聊天室的方式,每个聊天室创建时就已经确定了里面消息的加密和解密的密码,而且答案和密码对于服务器来讲是未知的。
2、 聊天室内,为防止窥屏或截屏,只能看到密文信息,必须通过透视镜的方式查看一条密文的部分信息。
3、 所有的聊天记录仅保存最新的 100 条密文,多余的自动清理了。
4、 创建者关闭聊天室,或清理聊天室时会清理服务器上的缓存。
那么用户怎么获取正确的答案呢?首先我们需要进行加密聊天的核心问题是什么?核心问题是确保本次聊天的数据是加密的,但是对象是已知的,对于陌生的聊天对象在本系统内是直接排斥的。所以既然聊天对象是已知的,那么告知其答案甚至是密码都是可以的。
作为长期已知的聊天对象,其实答案可以采用其他的方式同步起来,比如诗句、创建者的真实名称、已知字典里的某些汉字等等。
从攻击者的角度来分析:
1、 服务器永远都是密文,而且能解密的信息并没有,所以作为系统开发者也无法破解相关的信息。就算服务器端的信息被某些机构获取,我们能保证破解时间至少是 100年以上,所以服务器端是绝对安全的。
2、 首先先约定一个前提,就是创建者不会主动泄露答案和密码,那么基于用户端的破解只能利用木马、以及录屏或截屏的形式获取。这个目前的操作系统都有安全防护,当然被重点盯住的人除外。所以为了防止截屏之类的情况,我们只能确保聊天信息本身都是加密的。
3、 采用双重保护是可以的,比如利用一个聊天室同步相关的答案或密码,然后在另一个聊天室内实际发送信息,而且这个聊天室是定时清理和创建的。
以上只是基于我们的加密算法的聊天系统案例,当然请不要用于非法场景。

五、简单又好用的产品方向
基于我们的算法可以发展一些新的产品方向:
1、通过sessionStorage和localStorage记录部分用户的解密信息,也就是说同步的加密信息可以存储在sessionStorage和localStorage中,那么用户无需重复输入,除非后台系统更改了加解密的密码。
2、sessionStorage和localStorage最大可以保存5MB的数据,且采用webRTC技术可以基于本算法实现点对点数据加密互动,或者进行区块链的应用。
3、假设手机的输入法自动在输入文字后加密输入框内的文字信息,那么无论是微信、QQ,还是其他的聊天工具,再也不用担心服务器缓存明文的问题,解密前期可以采用复制密文,输入密码,然后解密查看即可。我相信连红包功能都能识别,这个功能开发就更简单啦。
4、真正开启HTML5游戏时代,HTML网页游戏的发展为什么滞后,主要是很多游戏厂商担心源代码被抄袭的问题,那些SSL、或TSL都只能确保传输时的加密,所以是安全套接字,实际上HTML、CSS以及JS在用户浏览器上同样能被获取和下载。光靠软件著作权并不能保护好游戏源代码。

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

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

相关文章

20230510vmlinux编译过程

1.进入linux内核源码目录下&#xff0c;打开Makefile文件&#xff0c;搜索vmlinux cmd_link-vmlinux \ $(CONFIG_SHELL) $< "$(LD)" "$(KBUILD_LDFLAGS)" "$(LDFLAGS_vmlinux)"; …

第10 CURD操作与RedisCache缓存的强制清理的实现

using System.Net; using Microsoft.Extensions.Caching.Distributed; using Core.Caching; using Core.Configuration; using StackExchange.Redis; namespace Services.Caching { /// <summary> /// 【Redis分布式缓存数据库软件管理器--类】 /// <remarks>…

索引 ---MySQL的总结(五)

索引 在mysql数据库之中&#xff0c;如果数据量过大&#xff0c;直接进行遍历会需要使用许多时间。这里使用空间换时间解决这一个问题。 目前就是从解决问题的这一个角度出发&#xff0c;需要增加搜索的速度&#xff0c;一定是要选择好用的数据结构进行搜索&#xff08;遍历的…

第十五届吉林省赛个人题解【中档题(不过可能对你来说是简单题)】(H、G、C)

文章目录 H. Visit the Park(STL)G. Matrix Repair(思维题)C.Random Number Generator(BSGS算法) H. Visit the Park(STL) 题意&#xff1a;给你一个无向图&#xff0c;每条边上都有一个数码&#xff0c;然后给你一个路径&#xff0c;每次你必须从Ai走到Ai1&#xff08;直接走…

【EHub_tx1_tx2_A200】Ubuntu18.04 + ROS_ Melodic + 锐驰LakiBeam 1L单线激光 雷达评测

大家好&#xff0c;我是虎哥&#xff0c;最近这段时间&#xff0c;又手欠入手了锐驰LakiBeam 1L激光雷达&#xff0c;实在是性价比太优秀&#xff0c;话说&#xff0c;最近激光雷达圈确实有点卷。锐驰官网的资料已经很丰富&#xff0c;我这里总结一下自己的简单测试经验&#x…

挑战14天学完Python---

抛弃了数学思维,引入了计算思维,计算思维是抽象和自动化相结合的结果 抽象:抽象问题的形式化逻辑 自动化:将抽象的结果通过程序自动实现 0.1在计算机内部转二进制 0.1转二进制 二进制的0.1与二进制0.2计算 结果再转十进制 在众多编程语言中 ,只有Python语言提供了复数类型.空间…

OpenCL编程指南-1.2OpenCL基本概念

OpenCL概念基础 面向异构平台的应用都必须完成以下步骤&#xff1a; 1&#xff09;发现构成异构系统的组件。 2&#xff09;探查这些组件的特征&#xff0c;使软件能够适应不同硬件单元的特定特性。 3&#xff09;创建将在平台上运行的指令块&#xff08;内核)。 4&#xff09…

紧跟 AI 步伐, Gitee 已支持 AI 模型托管

AI 时代已经来了&#xff01; 现在&#xff0c;越来越多的企业和个人开始使用 AI 技术来解决各种问题。想要了解 AI&#xff0c;那么就一定要了解 AI 模型&#xff0c;作为 AI 的核心技术之一&#xff0c;AI 模型为各种进阶的人工智能应用奠定了基础&#xff0c;从 ChatGPT 、…

Mysql 存储过程+触发器+存储函数+游标

视图&#xff08;view&#xff09; 虚拟存在的表&#xff0c;不保存查询结构&#xff0c;只保存查询的sql逻辑 语法 存储过程 实现定义并存储在数据库的一段sql语句的集合&#xff0c;可减少网络交互&#xff0c;提高性能&#xff0c;代码复用,内容包括&#xff1a;变量&am…

并发编程进阶

并发编程进阶 文章目录 并发编程进阶一、JMM1. JMM的定义&#xff1a;2. 内存屏障&#xff1a; 三. volatile四. as-if-serial五. happens-before六. 缓存一致性&#xff08;Cache coherence&#xff09;7. Synchronized1. synchronized 的使用2. synchronized底层原理 8. Conc…

Web3.0介绍与产业赛道(去中心化,金融与数字资产,应用与存储,区块链技术)

文章目录 1、web3.0时代——区块链技术2、产业赛道&#xff1a;去中心化金融与数字资产3、产业赛道&#xff1a;去中心化应用与存储4、区块链&#xff1a;基础设施与区块链安全和隐私 1、web3.0时代——区块链技术 Web3.0是什么 Web3.0是指下一代互联网技术&#xff0c;它将在…

最优化理论-线性规划的标准形

目录 一、引言 二、线性规划的标准形 1. 线性规划的定义 2. 线性规划的标准形 3. 线性规划的约束条件 三、线性规划的求解方法 1. 单纯形法 2. 内点法 3. 割平面法 四、线性规划的应用 1. 生产计划 2. 运输问题 3. 投资组合问题 五、总结 一、引言 最优化理论是…

数据链路层及其重要协议——以太网

文章目录 数据链路层前言1. 以太网协议2. MTU&#xff08;传输的限制&#xff09;3. ARP协议 数据链路层 前言 以太网&#xff1a; 不是一种具体的网络&#xff0c;而是一种技术标准。既包含了数据链路层的内容&#xff0c;也包含了一些物理层的内容&#xff0c;例如&#xf…

网络层——IP协议详细解读

文章目录 IP协议1. IP协议的报文格式2. IP协议的地址管理3. IP地址的组成4. IP协议的路由选择 IP协议 之前介绍了传输层的重点协议&#xff0c;TCP和UDP协议&#xff0c;以下将介绍网络层的重点协议IP协议。 1. IP协议的报文格式 IP地址 本质上是一个32位整数&#xff0c;在…

华为OD机试真题 Java 实现【不爱施肥的小布】【2023Q2】

一、题目描述 某农村主管理了一大片果园&#xff0c;fields[i]表示不同国林的面积&#xff0c;单位m2&#xff0c;现在要为所有的果林施肥且必须在n天之内完成&#xff0c;否则影响收成。小布是国林的工作人员&#xff0c;他每次选择一片果林进行施肥&#xff0c;且一片国林施…

【Linux初阶】环境变量 | 如何设置、获取环境变量?

&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f; &#x1f36d;&#x1f36d;系列专栏&#xff1a;【Linux初阶】 ✒️✒️本篇内容&#xff1a;讨论为什么指令作为一个可执行程序不需要加 ./运行&#xff1b;环境变量为什么会自己恢复&#xff1b;环境变量…

Acwing456. 车站分级

一条单向的铁路线上&#xff0c;依次有编号为 1, 2, …, n的 n 个火车站。 每个火车站都有一个级别&#xff0c;最低为 1 级。 现有若干趟车次在这条线路上行驶&#xff0c;每一趟都满足如下要求&#xff1a;如果这趟车次停靠了火车站 xx&#xff0c;则始发站、终点站之间…

【网络】-- 数据链路层

应用层&#xff08;http、https&#xff09;&#xff1a; 数据的使用。传输层&#xff08;UDP、TCP&#xff09;&#xff1a;网络通讯的细节&#xff0c;将数据可靠的从A主机跨网络送到B主机。网络层&#xff08;IP&#xff09;&#xff1a;提供一种能力&#xff0c;将数据从A主…

Real-ESRGAN:Training Real-World Blind Super-Resolution with Pure Synthetic Data

https://github.com/NightmareAI/Real-ESRGAN/tree/masterhttps://github.com/NightmareAI/Real-ESRGAN/tree/master从SRCNN到EDSR&#xff0c;总结深度学习端到端超分辨率方法发展历程 - 知乎超分辨率技术&#xff08;Super-Resolution, SR&#xff09;是指从观测到的低分辨率…

设计模式MVC、MVP、MVVM

MVC、MVP和MVVM是什么&#xff1f; MVC&#xff1a;Model-View-Controller&#xff0c;是一种分层解偶的框架&#xff0c;Model层提供本地数据和网络请求&#xff0c;View层处理视图&#xff0c;Controller处理逻辑&#xff0c;存在问题是Controller层和View层的划分不明显&am…