阿正 发表于 2017-3-30 14:51:53

读学易语言第九章|阿正_网页数据解密之JavaScript基础

读学易语言第九章 | 阿正


网页数据解密之JavaScript基础





本章适用于有一定易语言基础想发展学习POST方面的人

阅读,文章根据个人学习经验所写,如果有错误请指出。


QQ交流群:308780188


阿正QQ:964269020


公众号:阿正易语言


博客: www.eyuyan.vip


好了,说了这么多的易语言相关的东西了,我们开始讲讲

JavaScript


持续关注我们的朋友应该知道我们推出的每日js这一套教程

https://www.leybc.com/forum-105-1.html


那么现在我来带大家详细的学习下,这是JavaScript的第一章,我们还是简

单了解下什么是JavaScript


JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置

支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚

本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网

页增加动态功能。


在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实

现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名

为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。


为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可

在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为

ECMAScript。





JavaScript简称JS,虽然里面含有一个“Java”但是,这个语言和Java没有一点

毛的关系,所以我们不要去考虑Java的事。JavaScript是一门运行在浏览器上面

的弱语言,它的引擎是浏览器的一部分,早期是用于html页面的动态效果,后

面逐步出现了利用JavaScript的来加密。


既然有加密,那么就有对应的代码来进行计算,既然有代码,那么同一种

类算法,我们就可以翻译成为多种语音,比如DES算法,我们有Java版本、c++

版本、JavaScript版本,当然也有我们的易语言版本等等。


我们要做的事情是,通过分析网页代码,然后把相关的计算加密的

JavaScript代码扣下来,然后使用我们的乐易编程助手进行JavaScript的调试,调

试完毕后我们就可以拿到易语言里面使用了。


数据加密,是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,

而解密则是通过解密算法和解密密钥将密文恢复为明文。它的核心是密码学。(我恨数学

家)





数据加密的术语有 :


明文,即原始的或未加密的数据。通过加密算法对其进行加密,加密算法的输入信息

为明文和密钥;


密文,明文加密后的格式,是加密算法的输出信息。加密算法是公开的,而密钥则是

不公开的。密文不应为无密钥的用户理解,用于数据的存储以及传输;


密钥,是由数字、字母或特殊符号组成的字符串,用它控制数据加密、解密的过程;


加密,把明文转换为密文的过程;


加密算法,加密所采用的变换方法;


解密,对密文实施与加密相逆的变换,从而获得明文的过程;


解密算法,解密所采用的变换方法。


加密技术是一种防止信息泄露的技术。它的核心技术是密码学,密码学是研究密码系

统或通信安全的一门学科,它又分为密码编码学和密码分析学。


任何一个加密系统都是由明文、密文、算法和密钥组成。发送方通过加密设备或加密

算法,用加密密钥将数据加密后发送出去。接收方在收到密文后,用解密密钥将密文解密

,恢复为明文。在传输过程中,即使密文被非法分子偷窃获取,得到的也只是无法识别的

密文,从而起到数据保密的作用。


对称加密技术


对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥,即

加密密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法,对称加密算法使

用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另一个对称密钥

加密系统是国际数据加密算法(IDEA),它比DES的加密性好,而且对计算机功能要求也

没有那么高。IDEA加密标准由PGP(Pretty Good Privacy)系统使用。


非对称加密技术


1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种

新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥

,这就是“公开密钥系统”。相对于“对称加密算法”这种方法也叫做“非对称加密算法”。与对

称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密 (

privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对

应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才

能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。





这是完整的数据加密解密,但是有的时候为了保证数据的完整性,我们的

网站还会采用散列算法





产生一些数据片段(例如消息或会话项)的散列值的算法。好的散列算法具有根据输入数

据中的变动来更改散列值结果的特性;因此,散列对于检测在诸如消息等大型信息对象中

的任何变化很有用。


此外,好的散列算法使得构造两个独立的有相同散列的输入不能通过计算方法实现。典型

的散列算法包括 MD2、MD4、MD5 和 SHA-1。散列算法也被称为散列函数。散列算法的

算法就是争取一个萝卜一个坑的原则





散列算法简单理解起来就是:保证数据的完整性,检测数据是否被更改,最常用的散列算

法是md5   比如 文本 “123456789”的md5是 “25f9e794323b453885f5181f1b624d0b”


这个是不会变化的(目前来说,不过清华某叫兽已经破解md5……)





了解了JavaScript、算法的基本知识,那么我们先简单记住几个JavaScript的操作

符。


var声明变量例如声明一个整数变量 var a=1;


ruturn返回()这个同易语言的返回命令ruturn(a);


for(){}    for循环结构体


function   函数声明





上面四个是我们这节课需要记住的,下面附带一份资料:


JavaScript在网页中的嵌入方法





通常是在<head>标记中利用script标记将JavaScript语句嵌入HTML


<head>


<script language="javascript" type="text/javascript">   


//window.alert("欢迎浏览本网页!");


       alert("欢迎浏览本网页!"); </script>


</head>


JavaScript在网页中的嵌入方法2








方法2:外部 JavaScript 文件可以链接到 HTML 文档中


script标记的 src(源文件)属性指定此外部文件








<script language="javascript" src="文件名.js"type="text/javascript"> </script>











三类对象:


浏览器对象:浏览器窗口对象window、文档对象 document、位置对象location


历史对象history


脚本内置对象 :


String字符串对象Date日期对象 Math数学对象等


HTML 对象各种HTML标记都是对象,例如: 段落<P> 图片<IMG>超链接<A>等





JavaScript字符串对象的使用方法:


1.substring()方法的功能是提取子字符串。例:   


删除文本框内容的最后一个字符的代码为:





var s=Text1.value;   


Text1.value=s.substring(0,s.length-1);











2.indexOf()方法的功能是从字符串中检索。


indexOf(“查找的子字符串”,查找的起始位置)返回子字符串所在的位置,如果没

找到,返回 -1类似易语言的寻找文本


例如:





var s = Text1.value;





if (s.indexOf("*", 0) != -1)alert("文本框内容中有*号!");








数据类型


值类型,也就是原始类型:Undefined(未定义)、Null(空)、Boolean(逻辑)、

Number(数值) 和 String(字符)。


var a;                         // undefined,


var b = null;             // null


var c = true;             // boolean,


var d = 10;                // number


var e = “my”;         // string











1 关键字


break


case


catch


continue


default


delete


do


else


finally


*for //循环,变量循环


*function//声明方法


*if //如果 if(bool)


in


instanceof


*new //创建一个对象


*return//返回


switch


*this //当前对象


throw


try


typeof


*var//声明变量


void


while


with


2 保留字混个眼熟保留字,没有任何作用,但是也没有办法使用


abstract


boolean


byte


char


class


const


debugger


double


enum


export


extends


fimal


float


goto


implements


import


int


interface


long


mative


package


private


protected


public


short


static


super


synchronized


throws


transient


volatile


https://docs.zoho.com.cn/writer/image.do?imgurl=60c55005f04ed37632305f71b7e9afae3fd45a483c18d082be8ab0d0638f329c55b211f390a9526dbe808a8df8ae9d60










萧曳 发表于 2017-4-1 12:34:12

沙发~支持楼主,正在需要呢

namelolo 发表于 2017-4-6 13:53:36

太棒了,感谢楼主,Mrak一下

Royal丶Cs 发表于 2017-4-7 13:01:32

拿分走人呵呵,楼下继续!

jclqq 发表于 2017-4-11 10:13:49

太棒了,感谢楼主,Mrak一下

lkor 发表于 2017-4-12 17:10:48

太棒了,感谢楼主,Mrak一下

赤坂龙之介 发表于 2017-4-18 12:38:32

    感觉学了一节JS

吴祥坦 发表于 2017-4-19 21:56:46

太棒了好好好

tdqk003 发表于 2017-4-23 22:09:46

谢谢分享啦啊
页: [1]
查看完整版本: 读学易语言第九章|阿正_网页数据解密之JavaScript基础