关于加密解密签名等基础知识

2020-01-21  本文已影响0人  沉默剑士

一、各种概念、技术和用途

主要概念:加密解密算法、消息摘要、数字签名、数字证书

1、加密解密算法

2、消息摘要

3、数字签名

4、数字证书

5、Base64

在计算机的世界里,密钥就是一段二进制的数据。二进制形式虽然安全性很高,但是却大大降低了它的可读性。
通常是使用Base64编码对密钥文件做一下编码,增加可读性;

二、各种疑问

Q1:数据完整性机制,譬如SHA和MD5,跟防纂改的数字签名有什么关系?

消息摘要===>防纂改
数字签名===>防纂改 + 防伪造防抵赖

Q2:用Hmac来做防纂改,和直接用MD5或者SHA来做防纂改,有什么区别?

Hmac使用起来复杂一点,因为需要密钥,但更安全一点;
因为现在各种彩虹表,已经使得MD5或者SHA变得可以反解了~

Q3:数字签名和加密解密的区别?

数字签名是对已有的数据做签名,生成1个额外的签名出来;但是加密算法,是把明文变成密文了;
在网络上传输,如果只有数字签名,表现就是请求体里面加了1个签名的字段,但是请求的其他参数还是明文发送的;
但是如果是加密的话,就是对所有的请求参数都加密,请求就变成密文传输了。
加密解密:私钥加密,公钥解密。
数字签名:私钥签名,公钥验签。

Q3.1:为什么不能用公钥加密,私钥解密?

相对于”私钥加密,公钥解密“的实现,RSA提供了另外一种方式”公钥加密,私钥解密“
但是,用公钥加密数据的方式是否可取呢?
公钥是通过甲方发送给乙方的,其在传递过程中很有可能被截获,也就是说窃听者很有可能获得公钥;
如果窃听者获得了公钥,向甲方发送数据,甲方是无法辨别消息的真伪的;
因此,虽然可以使用公钥对数据加密,但这种方式还是会存在一定的安全隐患;
如果要建立更安全的加密消息传递协议,就需要甲乙两房构建两套非对称加密算法密钥;
仅遵循”私钥加密,公钥解密“的方式进行加密消息传递。

参考资料

《Java加密与解密的艺术》

上一篇下一篇

猜你喜欢

热点阅读