JS实现客户端的网页加密解密技术,可用作选择性隐蔽展示。当然客户端的加密安全度是不能与服务器相提并论,肯定不能用于密码这类内容的加密,但对于一般级别的内容用作展示已经够了。

JS加密与解密的解决方案有很多,本文则利用String对象的charCodeAt()方法和fromCharCode()方法对字符的ASCII编码进行获取和修改。

加密,解密代码:

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> <title>网页加密及解密</title>
<meta name="author" content="xiongzaiqiren" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta name="generator" content="ClassBao team coding in July 10, 2017" /> </head> <body>
<p><textarea id="text1" name="textfield" cols="50" rows="5">钱庄王员外这个人怎么样?</textarea></p>
<input type="button" name="Button1" value="加密" onClick="text1.value = MySign.Encrypt(text1.value);">
<input type="button" name="Button2" value="解密" onClick="text1.value = MySign.UnEncrypt(text1.value);"> <script language="JavaScript">
var MySign = {
//加密/解密次数
num: 0,
//加密
Encrypt: function (Text) {
this.num = this.num + 1;
output = new String;
alterText = new Array();
varCost = new Array();
TextSize = Text.length;
for (i = 0; i < TextSize; i++) {
idea = Math.round(Math.random() * 111) + 77;
alterText[i] = Text.charCodeAt(i) + idea;
varCost[i] = idea;
}
for (i = 0; i < TextSize; i++) {
output += String.fromCharCode(alterText[i], varCost[i]);
}
//text1.value = output;
return output;
}, //解密
UnEncrypt: function (Text) {
if (this.num > 0) {
this.num = this.num - 1;
output = new String;
alterText1 = new Array();
varCost1 = new Array();
TextSize = Text.length;
for (i = 0; i < TextSize; i++) {
alterText[i] = Text.charCodeAt(i);
varCost[i] = Text.charCodeAt(i + 1);
}
for (i = 0; i < TextSize; i = i + 2) {
output += String.fromCharCode(alterText[i] - varCost[i]);
}
//text1.value = output;
return output;
}
}
}; //测试代码
var testString = "光头强,还不去砍树?";
console.log(testString); var sign = MySign.Encrypt(testString); //凑ˆ妣o忕›ァ[還¬什³呯´硠S桲aチb
var sign2 = MySign.UnEncrypt(sign); //光头强,还不去砍树? console.log(sign);
console.log(sign2); </script> </body>
</html>

JS里charCodeAt()和fromCharCode()方法拓展应用:加密与解密的更多相关文章

  1. Javascript中双等号(==)隐性转换机制 JS里charCodeAt()和fromCharCode()方法拓展应用:加密与解密

    Javascript中双等号(==)隐性转换机制   在Javascript中判断相等关系有双等号(==)和三等号(===)两种.其中双等号(==)是值相等,而三等号(===)是严格相等(值及类型是否 ...

  2. Java Des加解密方法(c#加密Java解密)

    最近我们用Java把一个用.net编写的老系统重新做了翻版,但是登录还是用.net的登录.这样就会遇到一个比较棘手的问题,我们登录用的cookie信息都是.net用des加密的,但我们不得不用Java ...

  3. PHP中的__toString方法(实现JS里的链式操作)

    _toString方法是在打印对象时自动调用的魔术方法,如果不声明会报以下错 Catchable fatal error: Object of class String could not be co ...

  4. js里的setTimeout和setInterval之后的页面是空白,阻塞浏览器的document对象,但是不阻塞script方法

    js里的setTimeout和setInterval是否进程阻塞? 阻塞浏览器的document对象,但是不阻塞script方法 当你在setTimeout中使用document.write时是不行的 ...

  5. js模仿jquery里的几个方法parent, parentUntil, children

    有时工作需要, 也是接着上一章的方法, 用js模仿jquery里的几个方法parent, parentUntil, children. function parent(node){ return no ...

  6. 微信小程序 引用其他js里的方法

    微信小程序中,在微信官方开发文档我们可以知道 小程序的目录结构 . 一个小程序页面由四个文件组成,一个小程序页面的四个文件具有相同路径与文件名,由此我们可知一个小程序页面对应着一个跟页面同名的js文件 ...

  7. JS删除String里某个字符的方法

    关于JS删除String里的字符的方法,一般使用replace()方法.但是这个方法只会删除一次,如果需要将string里的所以字符都删除就要用到正则. 1 2 3 4 var str = " ...

  8. 【微信小程序】 引用公共js里的方法

    一个小程序页面由四个文件组成,一个小程序页面的四个文件具有相同路径与文件名,由此我们可知一个小程序页面对应着一个跟页面同名的js文件.可是当有些公共方法,我们想抽离出来成为一个独立公共的js文件.我们 ...

  9. 记js里codePointAt()方法返回的结果的含义。

    经过<字符串的扩展>和<字符编码的那些事>这两篇文章的阅读,大概了解js里codePointAt方法返回结果的含义. var str='

随机推荐

  1. redis基本类型以及优点特性

    1.什么是redis? redis是一个基于内存的高性能key-value数据库 2.redis基本数据类型及应用场景  支持多种数据类型: string(字符串)   String数据结构是简单的k ...

  2. [区块链|非对称加密] 对数字证书(CA认证)原理的回顾

    摘要:文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用.接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的 ...

  3. Linux V4L2之camera

    一.硬件知识 1. 摄像头硬件结构和工作原理,如图1&图2 外部光线穿过lens镜头,经过红外滤光片后光学图像投射到传感器上,然后光学图像被转换成电信号,电信号再经过模数转换变为数字信号,数字 ...

  4. .netcore2.1在控制器中和类中,获取appsettings中值的方法

    一般我们在开发项目中,都会从配置文件中获取数据库连接信息.自定义参数配置信息等. 在.netcore中在控制器和自定义类中,获取配置文件中参数方式如下: appsettings.json { &quo ...

  5. 写个重新加载 ocelot 配置的接口

    写个重新加载 ocelot 配置的接口 Intro 我们想把 ocelot 的配置放在自己的存储中,放在 Redis 或者数据库中,当修改了 Ocelot 的配置之后希望即时生效,又不想在网关这边定时 ...

  6. gitbook 入门教程之前置知识

    markdown 基本知识 markdown 是一种简化的 html 语法,相比于 txt 无格式文本更强大. 你可以用专门的软件去编辑 markdown 文件,就像需要使用软件编辑 txt 文件一样 ...

  7. 批量插入一张表的数据,并且生成不同的uuid 字符截取 批量更新 去除重复数据

    INSERT INTO party_branchSELECT UUID(),m.name,m.secreta_name,m.contacts_name,m.contact_phon,m.categor ...

  8. c语言总练习题

    !4,42 ?45 1 Description 键盘输入一个双精度数据,乘以2以后输出 Input 输入一个double型数据 Output 输出它的两倍数,结果保留8位小数 Sample Input ...

  9. SUSE12SP3-Mycat(4)rule.xml配置详解

    简介 rule.xml 里面就定义了我们对表进行拆分所涉及到的规则定义.我们可以灵活的对表使用不同的分片算法, 或者对表使用相同的算法但具体的参数不同.这个文件里面主要有 tableRule 和 fu ...

  10. 音频处理EQ的基本概念

     我们通常所说的人声,歌声以及乐声都是一个复合音,也就是由声音的基音和一系列的泛音所构成的.这些泛音都是基音频率的倍数,物理学中叫分音,电声学中叫谐波,音乐中则把它们称做泛音.可以说,泛音对音色的特性 ...