✅加密&解密、加签&验签做的事情一样吗?
典型回答
当我们在和外部机构进行接口交互的时候,需要做加解密及加签验签。那么他们有什么区别呢?
加密&解密
目的:加密的主要目的是保护数据的隐私性,即确保即使数据泄露了,别人也只能拿到密文。
- 加密(Encryption):将明文数据转换为无法读取的密文,通常使用密钥进行加密。只有拥有正确密钥的人才能解密密文以恢复原始数据。
- 解密(Decryption):使用相应的密钥将密文转换回原始的明文数据。
加密算法可以是对称加密(使用相同的密钥进行加密和解密)或非对称加密(使用一对公钥和私钥,其中一个用于加密,另一个用于解密)。
加签&验签
目的:加签的主要目的是保证数据的完整性和来源的真实性,即确保数据在传输过程中未被篡改,并且能验证数据来自于声称的发送者。
-
加签(Signing):使用发送者的私钥对数据(通常是数据的散列值,而不是数据本身)进行加密,生成数字签名。这个签名随数据一起发送给接收者。
-
验签(Verification):接收者使用发送者的公钥来解密数字签名,如果解密后的散列值与接收者自己计算的数据的散列值一致,则证明数据未被篡改,并且签名确实是发送者生成的。
所以,二者的主要区别就是在作用上了。加密是为了保护数据的隐私性,而数字签名是为了保证数据的完整性和来源的认证。