作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。
一、AI 解读
信息摘要
信息摘要是将一段信息(无论多长)通过某种算法(如MD5、SHA-1等)转换成一段固定长度的字符串,这个过程是不可逆的,即无法从信息摘要反推原始信息。信息摘要的主要用途是确保信息的完整性,通过对比发送前后的信息摘要值,可以判断信息在传输或存储过程中是否被篡改。
例子:当你下载软件时,网站通常会提供该软件文件的信息摘要(如SHA-256摘要值)。下载后,你可以使用相同的摘要算法对下载的文件进行摘要计算,然后将计算得到的摘要值与网站提供的值进行对比,如果两个值一致,说明下载的文件未被篡改。
数字签名
数字签名是信息摘要的一种应用,它使用发送方的私钥对信息摘要进行加密,接收方可以使用发送方的公钥对其进行解密,以此来验证信息的来源和完整性。数字签名保证了信息的完整性、认证和不可否认性。
例子:当Alice给Bob发送一个经过数字签名的文件时,Bob可以使用Alice的公钥来验证这个签名。如果验证成功,Bob就可以确信这个文件确实是Alice发送的,并且在传输过程中未被篡改。
数字证书
数字证书是数字签名技术的延伸,它由权威的证书颁发机构(CA)签发,用以证明公钥的所有权。数字证书包含了公钥持有者的信息以及公钥本身,并由CA的数字签名保证其真实性。
例子:当你访问一个HTTPS网站时,该网站会提供一个数字证书给你的浏览器。你的浏览器会自动检查这个证书是否由一个它信任的CA签发,以及证书中的公钥是否可以用来建立一个安全的连接。
二、AI 出题
题目1:以下哪种算法不是信息摘要算法? A. MD5 B. RSA C. SHA-256 D. SHA-1
答案及解析:B. RSA是一种非对称加密算法,而不是信息摘要算法。
题目2:数字签名的作用不包括以下哪项? A. 确保信息的完整性 B. 保护信息不被非法访问 C. 认证信息来源 D. 确保信息的不可否认性
答案及解析:B. 保护信息不被非法访问。数字签名的主要作用是确保信息的完整性、认证信息来源和确保信息的不可否认性,而信息的保密性是通过加密技术来实现的。
题目3:数字证书的作用是什么? A. 验证用户身份 B. 加密数据 C. 证明公钥的所有权 D. 存储信息
答案及解析:C. 证明公钥的所有权。数字证书包含了公钥持有者的信息以及公钥本身,并由证书颁发机构的数字签名保证其真实性。
题目4:若要验证一个文件的完整性,应该使用: A. 数字签名 B. 数字证书 C. 信息摘要 D. 对称加密
答案及解析:C. 信息摘要。通过计算文件的信息摘要并与原始的信息摘要值进行对比,可以验证文件的完整性。