目录

1. SSL简介

1.1 SSL和TLS

1.2 技术优点

2. 协议安全机制

2.1 传输数据的机密性

2.2 身份验证机制

2.3 消息完整性验证

2.4 利用非对称密钥算法保证密钥本身的安全

2.5 利用PKI保证公钥的真实性

3 协议工作过程

3.1 SSL的分层结构

3.2 SSL握手过程

3.2.1 仅验证server的SSL握手过程

3.2.2 验证server和client的SSL握手过程

3.2.3 恢复原有会话的SSL握手过程

4 典型组网应用

4.1 HTTPS

4.2 SSL VPN


本文非原创,图片等资源都来自原博,仅供学习之用。原博见脚注。

缩略语 英文名称 解释
AES Advanced Encryption Standard 高级加密标准
CA Certificate Authority 证书机构
DES Data Encryption Standard 数据加密标准
HTTPS Hypertext Transfer Protocol Secure 安全超文本传输协议
MAC Message Authentication Code 消息验证码
MD5 Message Digest 5 消息摘要算法5
PKI Public Key Infrastructure 公钥基础设施
RSA Rivest Shamir and Adleman 非对称密钥算法的一种
SHA Secure Hash Algorithm 安全散列算法
SSL Secure Sockets Layer 安全套接层
VPN Virtual Private Network 虚拟专有网络

1. SSL简介

1.1 SSL和TLS

  • 什么是SSL?
    SSL(Secure Socket Layer,安全套接字层),为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取。当前版本为3.0。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。
    SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
  • 什么是TLS?
    TLS(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。
    TLS 1.0是IETF(Internet Engineering Task Force,Internet工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本,可以理解为SSL 3.1(可简单理解为同一事物不同阶段的不同称呼),它是写入了 RFC 的。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。较低的层为 TLS 记录协议,位于某个可靠的传输协议(例如 TCP)上面。
  • SSL和TLS的主要区别?
    TLS的主要目标是使SSL更安全,并使协议的规范更精确和完善。另外,TLS版本号也与SSL的不同(TLS的版本1.0使用的版本号为SSLv3.1).
  • SSL是一个不依赖于平台和运用程序的协议,位于TCP/IP协议与各种应用层协议之间,为数据通信提高安全支持。

    图:SSL在协议层中的位置

1.2 技术优点

SSL具有例如以下长处:

  • 提供较高的安全性保证。
    SSL利用数据加密、身份验证和消息完整性验证机制。保证网络上传输数据的安全性。

  • 支持各种应用层协议。
    尽管SSL设计的初衷是为了解决万维网安全性问题,可是因为SSL位于应用层和传输层之间。它能够为不论什么基于TCP等可靠连接的应用层协议提供安全性保证。

  • 部署简单。
    眼下SSL已经成为网络中用来鉴别站点和网页浏览者身份,在浏览器使用者及Webserver之间进行加密通信的全球化标准。SSL协议已被集成到大部分的浏览器中,如IE、Netscape、Firefox等。这就意味着差点儿随意一台装有浏览器的计算机都支持SSL连接。不须要安装额外的client软件。

2. 协议安全机制

SSL协议实现的安全机制包含:

  • 传输数据的机密性:利用对称密钥算法对传输的数据进行加密。

  • 身份验证机制:基于证书利用数字签名方法对server和client进行身份验证,当中client的身份验证是可选的。

  • 消息完整性验证:消息传输过程中使用MAC算法来检验消息的完整性。

2.1 传输数据的机密性

网络上传输的数据非常容易被非法用户窃取,SSL采用在通信两方之间建立加密通道的方法保证传输数据的机密性。

所谓加密通道,是指发送方在发送数据前,使用加密算法和加密密钥对数据进行加密,然后将数据发送给对方。接收方接收到数据后,利用解密算法和解密密钥从密文中获取明文。没有解密密钥的第三方,无法将密文恢复为明文,从而保证传输数据的机密性。

加解密算法分为两类:

  • 对称密钥算法:数据加密和解密时使用同样的密钥。

  • 非对称密钥算法:数据加密和解密时使用不同的密钥,一个是公开的公钥,一个是由用户秘密保存的私钥。

利用公钥(或私钥)加密的数据仅仅能用对应的私钥(或公钥)才干解密。

与非对称密钥算法相比。对称密钥算法具有计算速度快的长处,通经常使用于对大量信息进行加密(如对全部报文加密);而非对称密钥算法,一般用于数字签名和对较少的信息进行加密。

SSL加密通道上的数据加解密使用对称密钥算法。眼下主要支持的算法有DES、3DES、AES等,这些算法都能够有效地防止交互数据被窃听。

对称密钥算法要求解密密钥和加密密钥全然一致。因此,利用对称密钥算法加密数据传输之前。须要在通信两端部署同样的密钥。

“对称加密”和“非对称加密”的概念

  • 什么是“加密”和“解密”?
    通俗而言,你可以把“加密”和“解密”理解为某种【互逆的】数学运算。就好比“加法和减法”互为逆运算、“乘法和除法”互为逆运算。
    “加密”的过程,就是把“明文”变成“密文”的过程;反之,“解密”的过程,就是把“密文”变为“明文”。在这两个过程中,都需要一个关键的东东——叫做“密钥”——来参与数学运算。

  • 什么是“对称加密”?
    所谓的“对称加密技术”,意思就是说:“加密”和“解密”使用【相同的】密钥。这个比较好理解。就好比你用 7zip 或 WinRAR 创建一个带密码(口令)的加密压缩包。当你下次要把这个压缩文件解开的时候,你需要输入【同样的】密码。在这个例子中,密码/口令就如同刚才说的“密钥”。

  • 什么是“非对称加密”?
    所谓的“非对称加密技术”,意思就是说:“加密”和“解密”使用【不同的】密钥。这玩意儿比较难理解,也比较难想到。当年“非对称加密”的发明,还被誉为“密码学”历史上的一次革命。
    一般来说指:加密时使用公钥,解密时使用私钥

  • 各自有什么优缺点?
    “对称加密”的好处是性能较好,但由于要让客户端掌握密钥,需将密钥在网络上传输,故不安全
    “非对称加密”的好处是限制了公钥的能力,即用公钥加密后只能在服务端用私钥解密,这样使得”解密的能力仅保留在服务端“,缺点也很明显,这样只能实现单向加密,客户端没有解密能力.另外由于”非对称加密”涉及到“复杂数学问题”,所以性能相对而言较差.

  • SSL对两种加密的利用?
    为了获得较优的性能,对话的内容用”对称加密”,而对于”对称加密”带来的密钥传输问题,则由”非对称加密”来解决,由于客户端没有”非对称加密”的解密能力,所以密钥由客户端来产生并用公钥加密传输给服务端,这样就(在思路上)解决了密钥传输的安全问题和对话数据解密的性能问题.

2.2 身份验证机制

电子商务和网上银行等应用中必须保证要登录的Webserver是真实的,以免重要信息被非法窃取。SSL利用数字签名来验证通信对端的身份。

非对称密钥算法能够用来实现数字签名。因为通过私钥加密后的数据仅仅能利用相应的公钥进行解密,因此依据解密是否成功,就能够推断发送者的身份。如同发送者对数据进行了“签名”。比如。Alice使用自己的私钥对一段固定的信息加密后发给Bob,Bob利用Alice的公钥解密,假设解密结果与固定信息同样。那么就能够确认信息的发送者为Alice,这个过程就称为数字签名。

SSLclient必须验证SSLserver的身份,SSLserver是否验证SSLclient的身份。则由SSLserver决定。SSLclient和SSLserver的身份验证过程。请参见“3.2 SSL握手过程”。

使用数字签名验证身份时。须要确保被验证者的公钥是真实的,否则。非法用户可能会冒充被验证者与验证者通信。如图1所看到的。Cindy冒充Bob,将自己的公钥发给Alice,并利用自己的私钥计算出签名发送给Alice,Alice利用“Bob”的公钥(实际上为Cindy的公钥)成功验证该签名,则Alice觉得Bob的身份验证成功,而实际上与Alice通信的是冒充Bob的Cindy。SSL利用PKI提供的机制保证公钥的真实性,具体介绍请参见“2.5 利用PKI保证公钥的真实性”。

2.3 消息完整性验证

为了避免网络中传输的数据被非法篡改,SSL利用基于MD5或SHA的MAC算法来保证消息的完整性。

MAC算法是在密钥参与下的数据摘要算法,能将密钥和随意长度的数据转换为固定长度的数据。利用MAC算法验证消息完整性的过程如图2所看到的。

发送者在密钥的参与下,利用MAC算法计算出消息的MAC值。并将其加在消息之后发送给接收者。接收者利用相同的密钥和MAC算法计算出消息的MAC值。并与接收到的MAC值比较。假设二者相同。则报文没有改变;否则,报文在传输过程中被改动,接收者将丢弃该报文。

MAC算法具有例如以下特征,使其可以用来验证消息的完整性:

  • 消息的不论什么改变,都会引起输出的固定长度数据产生变化。通过比较MAC值,可以保证接收者可以发现消息的改变。

  • MAC算法须要密钥的参与。因此没有密钥的非法用户在改变消息的内容后,无法加入正确的MAC值。从而保证非法用户无法任意改动消息内容。

2.4 利用非对称密钥算法保证密钥本身的安全

对称密钥算法和MAC算法要求通信两方具有同样的密钥。否则解密或MAC值验证将失败。因此。要建立加密通道或验证消息完整性,必须先在通信两方部署一致的密钥。

SSL利用非对称密钥算法加密密钥的方法实现密钥交换,保证第三方无法获取该密钥。如图3所看到的,SSLclient(如Web浏览器)利用SSLserver(如Webserver)的公钥加密密钥,将加密后的密钥发送给SSLserver。仅仅有拥有相应私钥的SSLserver才从密文中获取原始的密钥。SSL通常采用RSA算法加密传输密钥。

  • 实际上,SSLclient发送给SSLserver的密钥不能直接用来加密数据或计算MAC值。该密钥是用来计算对称密钥和MAC密钥的信息,称为premaster secret。SSLclient和SSLserver利用premaster secret计算出同样的主密钥(master secret)。再利用master secret生成用于对称密钥算法、MAC算法等的密钥。premaster secret是计算对称密钥、MAC算法密钥的关键。

  • 用来实现密钥交换的算法称为密钥交换算法。非对称密钥算法RSA用于密钥交换时,也能够称之为密钥交换算法。

利用非对称密钥算法加密密钥之前,发送者须要获取接收者的公钥,并保证该公钥确实属于接收者。否则。密钥可能会被非法用户窃取。如图1所看到的。Cindy冒充Bob,将自己的公钥发给Alice。Alice利用Cindy的公钥加密发送给Bob的数据。Bob因为没有相应的私钥无法解密该数据,而Cindy截取数据后,能够利用自己的私钥解密该数据。SSL利用PKI提供的机制保证公钥的真实性,具体介绍请参见“2.5 利用PKI保证公钥的真实性”。

2.5 利用PKI保证公钥的真实性

PKI通过数字证书来公布用户的公钥,并提供了验证公钥真实性的机制。数字证书(简称证书)是一个包括用户的公钥及其身份信息的文件,证明了用户与公钥的关联。

数字证书由权威机构——CA签发,并由CA保证数字证书的真实性。

SSLclient把密钥加密传递给SSLserver之前,SSLserver须要将从CA获取的证书发送给SSLclient,SSLclient通过PKI推断该证书的真实性。假设该证书确实属于SSLserver,则利用该证书中的公钥加密密钥,发送给SSLserver。

验证SSLserver/SSLclient的身份之前,SSLserver/SSLclient须要将从CA获取的证书发送给对端。对端通过PKI推断该证书的真实性。

假设该证书确实属于SSLserver/SSLclient,则对端利用该证书中的公钥验证SSLserver/SSLclient的身份。

3 协议工作过程

3.1 SSL的分层结构

如图4所看到的,SSL位于应用层和传输层之间,它能够为不论什么基于TCP等可靠连接的应用层协议提供安全性保证。SSL协议本身分为两层:

  1. 上层为SSL握手协议(SSL handshake protocol)、SSLpassword变化协议(SSL change cipher spec protocol)和SSL警告协议(SSL alert protocol)。

  2. 底层为SSL记录协议(SSL record protocol)。

当中:

  • SSL握手协议:是SSL协议很重要的组成部分。用来协商通信过程中使用的加密套件(加密算法、密钥交换算法和MAC算法等)、在server和client之间安全地交换密钥、实现server和client的身份验证。

  • SSLpassword变化协议:client和server端通过password变化协议通知对端。随后的报文都将使用新协商的加密套件和密钥进行保护和传输。

  • SSL警告协议:用来向通信对端报告告警信息,消息中包括告警的严重级别和描写叙述。

  • SSL记录协议:主要负责对上层的数据(SSL握手协议、SSLpassword变化协议、SSL警告协议和应用层协议报文)进行分块、计算并加入MAC值、加密。并把处理后的记录块传输给对端。

3.2 SSL握手过程

SSL通过握手过程在client和server之间协商会话参数,并建立会话。会话包括的主要参数有会话ID、对方的证书、加密套件(密钥交换算法、数据加密算法和MAC算法等)以及主密钥(master secret)。通过SSL会话传输的数据,都将采用该会话的主密钥和加密套件进行加密、计算MAC等处理。

不同情况下,SSL握手过程存在差异。

以下将分别描写叙述以下三种情况下的握手过程:

  • 仅仅验证server的SSL握手过程

  • 验证server和client的SSL握手过程

  • 恢复原有会话的SSL握手过程

3.2.1 仅验证server的SSL握手过程

图5 仅仅验证server的SSL握手过程

如图5所看到的,仅仅须要验证SSLserver身份,不须要验证SSLclient身份时,SSL的握手过程为:

简单的说便是:SSL客户端(也是TCP的客户端)在TCP链接建立之后,发出一个ClientHello来发起握手,这个消息里面包含了自己可实现的算法列表和其它一些需要的消息,SSL的服务器端会回应一个ServerHello,这里面确定了这次通信所需要的算法,然后发过去自己的证书(里面包含了身份和自己的公钥)。Client在收到这个消息后会生成一个秘密消息,用SSL服务器的公钥加密后传过去,SSL服务器端用自己的私钥解密后,会话密钥协商成功,双方可以用同一份会话密钥来通信了。

(1)        SSLclient通过Client Hello消息将它支持的SSL版本号、加密算法、密钥交换算法、MAC算法等信息发送给SSLserver。

(2)        SSLserver确定本次通信採用的SSL版本号和加密套件,并通过Server Hello消息通知给SSLclient。假设SSLserver同意SSLclient在以后的通信中重用本次会话,则SSLserver会为本次会话分配会话ID。并通过Server Hello消息发送给SSLclient。

(3)        SSLserver将携带自己公钥信息的数字证书通过Certificate消息发送给SSLclient。

(4)        SSLserver发送Server Hello Done消息。通知SSLclient版本号和加密套件协商结束。開始进行密钥交换。

(5)        SSLclient验证SSLserver的证书合法后,利用证书中的公钥加密SSLclient随机生成的premaster secret,并通过Client Key Exchange消息发送给SSLserver。

(6)        SSLclient发送Change Cipher Spec消息,通知SSLserver兴许报文将採用协商好的密钥和加密套件进行加密和MAC计算。

(7)        SSLclient计算已交互的握手消息(除Change Cipher Spec消息外全部已交互的消息)的Hash值,利用协商好的密钥和加密套件处理Hash值(计算并加入MAC值、加密等),并通过Finished消息发送给SSLserver。SSLserver利用相同的方法计算已交互的握手消息的Hash值,并与Finished消息的解密结果比較,假设二者相同,且MAC值验证成功,则证明密钥和加密套件协商成功。

(8)        相同地。SSLserver发送Change Cipher Spec消息,通知SSLclient兴许报文将採用协商好的密钥和加密套件进行加密和MAC计算。

(9)        SSLserver计算已交互的握手消息的Hash值,利用协商好的密钥和加密套件处理Hash值(计算并加入MAC值、加密等),并通过Finished消息发送给SSLclient。SSLclient利用相同的方法计算已交互的握手消息的Hash值,并与Finished消息的解密结果比較,假设二者相同。且MAC值验证成功。则证明密钥和加密套件协商成功。

SSLclient接收到SSLserver发送的Finished消息后。假设解密成功,则能够推断SSLserver是数字证书的拥有者,即SSLserver身份验证成功,由于仅仅有拥有私钥的SSLserver才干从Client Key Exchange消息中解密得到premaster secret,从而间接地实现了SSLclient对SSLserver的身份验证。

说明:
* Change Cipher Spec消息属于SSLpassword变化协议,其它握手过程交互的消息均属于SSL握手协议,统称为SSL握手消息。
* 计算Hash值。指的是利用Hash算法(MD5或SHA)将随意长度的数据转换为固定长度的数据。

3.2.2 验证server和client的SSL握手过程


SSLclient的身份验证是可选的,由SSLserver决定是否验证SSLclient的身份。

如图6中蓝色部分标识的内容所看到的,假设SSLserver验证SSLclient身份。则SSLserver和SSLclient除了交互“3.2.1 仅仅验证server的SSL握手过程”中的消息协商密钥和加密套件外,还须要进行下面操作:

(1) SSLserver发送Certificate Request消息。请求SSLclient将其证书发送给SSLserver。

(2) SSLclient通过Certificate消息将携带自己公钥的证书发送给SSLserver。SSLserver验证该证书的合法性。

(3) SSLclient计算已交互的握手消息、主密钥的Hash值。利用自己的私钥对其进行加密,并通过Certificate Verify消息发送给SSLserver。

(4) SSLserver计算已交互的握手消息、主密钥的Hash值。利用SSLclient证书中的公钥解密Certificate Verify消息,并将解密结果与计算出的Hash值比较。假设二者同样,则SSLclient身份验证成功。

3.2.3 恢复原有会话的SSL握手过程


协商会话参数、建立会话的过程中。须要使用非对称密钥算法来加密密钥、验证通信对端的身份。计算量较大,占用了大量的系统资源。

为了简化SSL握手过程。SSL同意重用已经协商过的会话,详细过程为:

(1) SSLclient发送Client Hello消息,消息中的会话ID设置为计划重用的会话的ID。

(2) SSLserver假设同意重用该会话,则通过在Server Hello消息中设置同样的会话ID来应答。这样,SSLclient和SSLserver就能够利用原有会话的密钥和加密套件。不必又一次协商。

(3) SSLclient发送Change Cipher Spec消息,通知SSLserver报文将采用原有会话的密钥和加密套件进行加密和MAC计算。

(4) SSLclient计算已交互的握手消息的Hash值,利用原有会话的密钥和加密套件处理Hash值,并通过Finished消息发送给SSLserver,以便SSLserver推断密钥和加密套件是否正确。

(5) 相同地。SSLserver发送Change Cipher Spec消息,通知SSLclient报文将采用原有会话的密钥和加密套件进行加密和MAC计算。

(6) SSLserver计算已交互的握手消息的Hash值,利用原有会话的密钥和加密套件处理Hash值,并通过Finished消息发送给SSLclient。以便SSLclient推断密钥和加密套件是否正确。

4 典型组网应用

4.1 HTTPS

HTTPS是基于SSL安全连接的HTTP协议。HTTPS通过SSL提供的数据加密、身份验证和消息完整性验证等安全机制。为Web访问提供了安全性保证,广泛应用于网上银行、电子商务等领域。

图8为HTTPS在网上银行中的应用。某银行为了方便客户,提供了网上银行业务,客户能够通过访问银行的Webserver进行帐户查询、转帐等。

通过在客户和银行的Webserver之间建立SSL连接,能够保证客户的信息不被非法窃取。

4.2 SSL VPN

SSL VPN是以SSL为基础的VPN技术。利用SSL提供的安全机制,为用户远程访问公司内部网络提供了安全保证。如图9所看到的。SSL VPN通过在远程接入用户和SSL VPN网关之间建立SSL安全连接,同意用户通过各种Web浏览器,各种网络接入方式,在不论什么地方远程访问企业网络资源。并可以保证企业网络的安全,保护企业内部信息不被窃取。


[1] SSL工作原理 https://www.cnblogs.com/bhlsheji/p/4586597.html
[2] SSL协商及密钥交换 https://blog.csdn.net/substitute_coder/article/details/57512131

SSL原理,SSL握手过程相关推荐

  1. TLS/SSL 工作原理及握手过程详解

    目录 前言 TLS/SSL 基础概念 密钥协商过程中存在的问题及解决办法 TLS/SSL 握手过程 前言 本文是对 HTTPS 安全基础.TLS/SSL 工作原理及握手过程的总结.第一部分介绍为 HT ...

  2. HTTP与HTTPS的区别, 以及SSL四次握手过程

    超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂 ...

  3. SSL/TLS(4): TLS连接握手过程详细分析

    SSL/TLS(1):基本概念通俗解释 SSL/TLS (2):通俗解释SSL/TLS为什么安全 SSL/TLS(3): CA证书解释 前言 在前面的文章中,我们讲述了SSL/TLS相关概念和CA证书 ...

  4. SSL握手过程实例抓包分析

    为了更好理解SSL协议的握手过程,结合实例,使用Wireshark抓包分析SSL握手过程中客户端与服务器间的交互过程.本例中服务器为AcFun弹幕视频网 - 认真你就输啦 (・ω・)ノ- ( ゜- ゜ ...

  5. SSL协议(HTTPS) 握手、工作流程详解(双向HTTPS流程)

    SSL协议的工作流程: 服务器认证阶段:1)客户端向服务器发送一个开始信息"Hello"以便开始一个新的会话连接:2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器 ...

  6. 区块链100讲:SSL协议之数据加密过程详解

    2019独角兽企业重金招聘Python工程师标准>>> 本讲详细讲述了SSL协议中的数据加密的过程,数字证书.对称加密.非对称加密和SSL握手过程等概念. 1 SSL 只要你听过HT ...

  7. ssl握手过程和ca证书验证

    转载:https://www.cnblogs.com/cposture/p/9029014.html SSL 认证 可以将 SSL 服务器与客户端之间的通信配置为使用单向或双向 SSL 认证. 单向 ...

  8. SSL/TLS握手过程

    1.握手与密钥协商过程 基于RSA握手和密钥交换的客户端验证服务器为示例详解TLS/SSL握手过程 再看一张手绘时序图 (1).client_hello     客户端发起请求,以明文传输请求信息,包 ...

  9. TLS/SSL握手过程

    参考了:https://www.wosign.com/faq/faq2016-0309-04.htm 1.握手与密钥协商过程 基于RSA握手和密钥交换的客户端验证服务器为示例详解TLS/SSL握手过程 ...

  10. scheme http https 区别 tls_HTTPS、HTTP、TLS/SSL工作及握手原理、PKI/CA密钥体系

    一.HTTPS与HTTP介绍 二.TLS/SSL工作原理 三.TSL/SSL握手过程 四.HTTPS性能优化 五.PKI体系 一.HTTPS与HTTP介绍 1.Https(Secure Hypetex ...

最新文章

  1. 中国区块链应用市场将爆发,百度创新指数第一,位居“区块链应用市场领导者”
  2. 漫画:学习中台,看这篇就够了
  3. CCNA初认识——链路捆绑命令
  4. HDFS异常:last block does not have enough number of replicas
  5. SLAM学习笔记-------------(九)后端1
  6. writeup 2019“新华三杯”中国医疗机构网络安全攻防演练大赛CTF(复赛)
  7. 新西兰梅西大学有计算机专业吗,新西兰大学计算机排名第一之梅西大学计算机专业...
  8. phpnow升级php5.5版本,PHPNow156升级PHP版本至5.3.5
  9. noi.openjudge 二分法求函数的零点
  10. Hadoop之MapReduce02【自定义wordcount案例】
  11. 我们错过了那么多机会,怎么办
  12. 【机试】2011-2020年复旦大学考研复试机试真题
  13. Cadence virtuoso 模拟版图过程中遇到的一些问题
  14. HTML5 Canvas制作数独游戏(一)
  15. [心得]google软件工程师技术准备
  16. 【解决】操作无法完成,因为程序已在另一处打开。
  17. 2019SUCTF EasyWeb
  18. 图像处理中几个基本的处理方法c#代码实现
  19. 知识点滴 - 世界上有多少国家?国旗是什么?
  20. 层次分析,critic以及topsis

热门文章

  1. 一款基于Vue的自适应Web在线音乐播放器
  2. 弗兰克·盖里为华纳兄弟设计新总部,犹如漂浮在高速公路的‘冰山’
  3. 骗子QQ微信在线查询系统网站源码
  4. 思科CISCO交换机端口升级方案
  5. Android实现简单的欢迎界面
  6. 跟青翼一起学Qt4编程大纲目录
  7. 很短,很文艺,很唯美的英语美句
  8. 《思考力---引爆无限潜能》书摘(二)
  9. PIXEL-LEVEL SELF-PACED LEARNING FOR SUPER-RESOLUTION
  10. mysql explain字段意思解释