1.前言:
所谓区块链,简而言之就是一种数据结构,每一个区块都像账本的每一页纸记录了该网络上的交易信息,而众多区块在时间的基础上按照顺序连接起
来就形成了区块链。区块链能够以数字方式识别和跟踪交易,并通过计算机的分布式网络共享这些信息,在某种意义上创建分布式信任网络。区块链提供
的分布式账本技术为追踪资产的所有权、交易信息和资产的转移提供了透明和安全的手段
其实区块链并不是一门全新的技术,中本聪研发出的比特币也只是将去中心化交易的金融思想、分布式数据存储、工作量证明pow机制等等结合那古老
又神秘的密码学中的"非对称加密"技术衍生出来的产物。而区块链的关键是去中心化、信任和安全,而成就这一切的最核心、最底层的技术就是密码学。
2.Http协议和Https协议
1.1Http协议的概念
Hyper Text Transfer Protocol,超文本传输协议,是互联网上应用最为广泛的一种网络协议。所有的www文件都必须遵循这个协议。
1.2Https协议的概念
Hyper Text Transfer Protocol over Secure Socket Layer,是基于安全套接层的Http协议,简而言之就是Http协议的安全版本
3、对称加密
3.1现代密码学的先驱----"凯撒密码
凯撒是第一个将密码用于军事用途、并且记录下来的人。在他的那本歌颂自己丰功伟绩的《高卢记》里,凯撒描述了他把密信送到正处
于围困之中、濒临投降的西塞罗手中。凯撒非常喜欢使用密文,后世的《凯撒传》详细地记录了凯撒使用的一种密文。而这种加密方法,甚
至沿用到今天。凯撒的做法是:将每个字母,用字母表中这个字母之后三位的那个字母替代。也就是字母A用字母D替代,字母B用字母E替
代。比如Abroad,凯撒在用密文写信的时候,就被替换为Deurdg。这种移动字母产生密码的方式,后来也被称为凯撒密码
3.2概念
对称加密指加密和解密使用相同密钥的加密算法。有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可
以从加密密钥中推算出来。而在对称算法中,加密密钥和解密密钥是相同的,它要求发送方和接收方在安全通信之前,商定一个密钥。对称算
法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信的安全性至关重要。
3.3特征
加密速度快,加密效率高:原因是加密的算法相较"非对称加密"来说要简单很多。
安全,比如采用DES算法,使用64位的密钥技术对数据进行加密,实际只有56位有效,8位用来校验的。那么就有2的56种密码的可能性。
缺陷:因为双方都是使用相同的密钥进行加密和解密,所以需要保障密钥传输的安全性以及密码管理的安全性。一旦任何一方密码丢失
都将导致密文被破解。
4、非对称加密
4.1概念
与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公钥与私钥是一对,如果用公钥对数
据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。因为加密和解密使用的是两个不同的密钥,
所以这种算法叫作非对称加密算法。
4.2特征
优点:更加安全,避免了密钥被截获而引发的安全性问题。
缺点:加密时间长、速度慢、效率低。只适合对少量数据进行加密。因为加密算法复杂。
5、数字证书
5.1概念
数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权
中心的数字签名。数字证书还有一个重要的特征就是只在特定的时间段内有效。
5.2创建数字证书
在Java中内置了keytool工具可以帮助咱们生成keystore并导出证书
生成密钥对 :keytool -genkeypair -alias "itheima" -keyalg "RSA" -keystore "heima.keystore"
查看当前的keystore中的密钥对:keytool -list -keystore "heima.keystore"
修改keystore的别名:keytool -changealias -alias mykey -destalias heima1
导出证书:keytool -exportcert -alias "itheima" -keystore "itheima.keystore" -file "heima.cer"
生成秘钥对文件:C:\Users\Administrator\heima.keystore
生成的证书:未认证的
6、消息摘要和数字签名
5.1消息摘要
5.1.1概念
消息摘要(Message Digest)又称为数字摘要(Digital Digest)。它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息
进行作用而产生。如果消息在途中改变了,则接收者通过对收到消息的新产生的摘要与原摘要比较,就可知道消息是否被改变了。
消息摘要是一个不可逆
5.1.2作用
消息摘要就相当于"密文"的指纹,用于验证密文的真5.1.3常见的消息摘要算法MD5、SHA、MAC等等都是消息摘要的算法
5.2数字签名
数字签名其实就是对消息摘要的内容使用私钥进行加密。相当于给某个文件签上一个名,作用是防止黑客对文件进行篡改。
五、Https服务器的配置
1.将数字证书keystore文件存放到某个文件夹中。
2.在tomcat安装目录下找到conf文件夹中的,修改server.xml文件,其实就是
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="keystore证书文件的地址(C:\Users\Administrator\heima.keystore)" keystorePass="keystore的密码" />
3.重启Tomcat服务器,然后使用Https服务器中的项目
4.由于我们的证书未在CA机构认证,所以需要我们手动将证书添加为可信任
Https服务器的配置
原文地址:https://www.cnblogs.com/yaboya/p/9092468.html