加密算法汇总

加密方式

1. 对称加密

对称加密密钥是相同的。

1.1常见对称加密算法:

算法描述
DES(Data Encryption Standard)数据加密标准,速度较快,适用于加密大量数据
3DES(Triple DES)基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。
AES(Advanced Encryption Standard)高级加密标准,速度快,安全级别高
Blowfish速度快,且安全,没有商业限制

2. 非对称加密

非对称加密有公钥和私钥。
特点:

  1. 算法需要两个密钥,一个公开,公开的密钥无法推导出对应的私钥。
  2. 算法复杂度相对对称加密算法高,所以计算相对慢。
  3. 密钥的保密性好,公钥可以公开,免去交换密钥的需求。
使用场景
  1. 数据加密传输
  2. 报文签名校验
常见非对称加密算法

RSA

数字证书

由权威部门颁发的成为证书。证书有公钥,还有证书的所有者,还有发布机构和证书有效期,可以类似身份证。这个证书是怎么生成的?生成证书需要发起一个请求,然后将这个请求发给一个权威机构去认证,这个机构称为CA(Certificate Authority)。
证书请求可以通过该命令生成:
openssl req -key test.key -new -out test.req
将这个请求发给权威机构,权威机构会给这个证书一个章,成为签名算法。如何保证签名是真的权威机构签名的呢?用权威机构CA的私钥就可以保证了。
权威机构给证书的签名的命令是这样的:
openssl x509 -req in test.req -CA cert.pem -CAkey private.key -out test.pem
这个命令会返回Signature ok,而test.pem就是签过名的证书。
查看证书内容的命令:
openssl x509 -in test.pem -noout -text
想要验证证书,需要CA的公钥,问题来了,怎么确定CA的公钥是否可靠?CA的公钥需要有上级给他背书,证书体系中就是Root CA。还有一种证书就是自签名证书,自己给自己签名。

密钥

公钥加密、私钥解密。
私钥签名、公钥验证。

密钥文件是用于存放私钥和公钥的文件,可以把私钥和公钥放在一起,也可以分开放。而密钥文件有很多格式。jks、p12、pem、cert,要根据不同的服务端和客户端选取。
一个密钥文件可以存放多个公钥和私钥。

生成cert文件的两种方式:
第一种:自己生成密钥和CSR(Certificate Signing Request)证书请求文件,把CSR给CA机构,机构生成一个cert文件给你,然后要把该cert文件导入到自己的密钥文件里。

第二种:直接在CA生成所有,然后回给private key和cert文件,配置到服务端即可。

密钥格式:
Private Key:

-----BEGIN ENCRYPTED PRIVATE KEY-----
XXXX
-----END ENCRYPTED PRIVATE KEY-----

CSR文件

-----BEGIN CERTIFICATE REQUEST-----
XXX
-----END CERTIFICATE REQUEST -----

Public key文件

----- BEGIN PUBLIC KEY-----
XXX
----- END PUBLIC KEY-----

Cert文件

----- BEGIN CERTIFICATE ----- 
XXX
----END CERTIFICATE -----

密钥工具

keytool,openssl。

keytool是JDK提供的工具。

常见证书类型

  1. 带有私钥的证书
    由PublicKey Cryptography Standards #12,即PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形式,以 pfx 作为证书文件后缀名

  2. 二进制编码的证书
    二进制编码的证书:由X.509公钥证书格式标准定义,证书中没有私钥,包含DER编码二进制格式的公钥,以 cer 作为证书文件后缀名。

  3. Base64编码的证书
    Base64编码的证书:由X.509公钥证书格式标准定义,证书中没有私钥,包含BASE64编码格式的公钥,也是以 cer 作为证书文件后缀名。

HTTPS的工作模式

非对称加密在性能上不如堆成加密。
HTTPS用

链接

  1. https://juejin.cn/post/6844904141987282952
  2. https://juejin.cn/post/6844903545272041479
  3. https://juejin.cn/post/6882404615443185678
  4. https://juejin.cn/post/7099723298031796254
  5. https://juejin.cn/post/6844904072856731662
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值