Javascript SHA256和SHA256之间的差异

Javascript SHA256和SHA256之间的差异,javascript,passport.js,saml-2.0,sha256,rsa-sha256,Javascript,Passport.js,Saml 2.0,Sha256,Rsa Sha256,我需要使用SAML2.0标准化算法(RSAHA256)对XML SAML消息进行签名。但是我的saml插件(passport saml)似乎只支持sha1和sha256。SHA256听起来与SHA256非常接近,但可能不是同一件事?区别是什么?我如何使用RSAHA256替代?我可能需要编辑passport saml库,以允许使用RSAHA256算法?我试图解释差异,但不是如何解决您的问题 RSA是一种公钥密码算法(公钥和私钥对算法),它确保机密性、真实性(包括身份)和不可否认性 SHA-256是

我需要使用SAML2.0标准化算法(RSAHA256)对XML SAML消息进行签名。但是我的saml插件(passport saml)似乎只支持sha1和sha256。SHA256听起来与SHA256非常接近,但可能不是同一件事?区别是什么?我如何使用RSAHA256替代?我可能需要编辑passport saml库,以允许使用RSAHA256算法?

我试图解释差异,但不是如何解决您的问题

RSA是一种公钥密码算法(公钥和私钥对算法),它确保机密性、真实性(包括身份)和不可否认性

SHA-256是一种散列算法,它生成唯一的固定大小的256位(32字节)散列,并确保消息完整性

哈希算法如下所示:

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

    要做到这一点,我们必须同时使用公钥加密和散列算法(如rsaha256)来满足上述要求

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

  • 发送方将消息及其加密哈希(使用发送方的私钥)发送给接收方。[使用加密和哈希]
  • 接收方解密加密的散列(使用发送方的公钥)。[使用解密和散列]
  • 接收方散列消息以生成新的散列。[使用哈希]
  • 接收方检查新哈希是否等于解密的哈希。
    • 如果其相等,则消息完整性、真实性和 确认发送方身份,接收方处理 进一步的消息
    • 如果其不相等,则消息被篡改或未由预期用户发送 发送方(因为加密哈希不是使用预期发送方的私钥生成的)和接收方丢弃消息

  • 我试图解释差异,但不是如何解决你的问题

    RSA是一种公钥密码算法(公钥和私钥对算法),它确保机密性、真实性(包括身份)和不可否认性

    SHA-256是一种散列算法,它生成唯一的固定大小的256位(32字节)散列,并确保消息完整性

    哈希算法如下所示:

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

    要做到这一点,我们必须同时使用公钥加密和散列算法(如rsaha256)来满足上述要求

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

  • 发送方将消息及其加密哈希(使用发送方的私钥)发送给接收方。[使用加密和哈希]
  • 接收方解密加密的散列(使用发送方的公钥)。[使用解密和散列]
  • 接收方散列消息以生成新的散列。[使用哈希]
  • 接收方检查新哈希是否等于解密的哈希。
    • 如果其相等,则消息完整性、真实性和 确认发送方身份,接收方处理 进一步的消息
    • 如果其不相等,则消息被篡改或未由预期用户发送 发件人(由于加密散列不是用预期发送方的私钥生成的),接收方放弃该消息