我正在制作一个单点登录解决方案,以便让我的公司与其他供应商集成。在研究过程中,有一件事情不断地困扰着我。
我对公钥/私钥的理解是,数据始终使用供应商的公钥进行加密,然后他们使用自己的私钥进行解密。到此为止都很好理解。
然而,为了验证消息确实来自于我,我将计算消息的哈希值并使用我的私钥加密哈希值(这个过程也称为签名)。为了验证消息确实来自于我,供应商将使用我的公钥解密哈希值并与未加密的哈希值进行比较。如果它们匹配,供应商就可以确定它来自于我。
那么我的私钥如何用于加密消息呢?公钥又如何解密消息呢?我原来的理解是非对称密钥不能做到这点,即公钥总是加密,私钥总是解密。任何解释都将不胜感激!
我对公钥/私钥的理解是,数据始终使用供应商的公钥进行加密,然后他们使用自己的私钥进行解密。到此为止都很好理解。
然而,为了验证消息确实来自于我,我将计算消息的哈希值并使用我的私钥加密哈希值(这个过程也称为签名)。为了验证消息确实来自于我,供应商将使用我的公钥解密哈希值并与未加密的哈希值进行比较。如果它们匹配,供应商就可以确定它来自于我。
那么我的私钥如何用于加密消息呢?公钥又如何解密消息呢?我原来的理解是非对称密钥不能做到这点,即公钥总是加密,私钥总是解密。任何解释都将不胜感激!