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