RSAwithSHA256和SHA256之间的区别

时间:2016-06-21 10:06:21

标签: javascript passport.js saml-2.0 sha256 rsa-sha256

我需要使用SAML 2.0标准化算法(RSAwithSHA256)签署XML SAML消息。但我的saml插件(passport-saml)似乎只支持sha1和sha256。 SHA256听起来非常接近RSAwithSHA256,但可能不是一回事?有什么区别,我怎么能用RSAwithSHA256呢?我可能需要编辑passport-saml库,以允许使用RSAwithSHA256算法?

1 个答案:

答案 0 :(得分:2)

我尝试解释差异,但不解释如何解决问题。

RSA是一种公钥加密算法(公钥和私钥对算法),它保证了机密性,真实性(包括识别)和不可否认性。

SHA-256是一种哈希算法,它产生一个唯一的,固定大小的256位(32字节)哈希值,它可以确保消息完整性。

采用如下的哈希算法,

  1. 发件人将消息及其哈希发送给接收者。 [哈希就业]
  2. Receiver哈希消息以生成新哈希。 [哈希就业]
  3. 接收方检查新散列是否等于原始散列。
    • 如果相等,则确认消息完整性,接收者进一步处理该消息。
    • 如果它不相等,则消息被篡改,接收者丢弃该消息。
  4. 在这里,接收方如何确认该消息及其散列确实是由预期发送者发送的?在上述情况下,接收方没有对发送方进行认证或识别。

    为此,我们必须同时使用公钥加密和哈希算法(如RSAWithSHA256)来满足上述要求。

    因此,当同时使用公钥加密和散列算法时,

    1. 发件人将邮件及其加密哈希(使用发件人的私钥)发送给接收者。 [使用加密和哈希]
    2. 接收方解密加密的哈希(使用发送方的公钥)。 [使用解密和哈希]
    3. Receiver哈希消息以生成新哈希。 [哈希就业]
    4. 接收方检查新散列是否等于解密散列。
      • 如果它相等,那么消息的完整性,真实性和 确认发件人身份并接收处理 消息进一步。
      • 如果其不相等,则消息被篡改或未被预期发送 发件人(因为加密的哈希不是使用预期发件人的私钥生成的),接收者会丢弃该邮件。