【问题标题】:Difference between RSAwithSHA256 and SHA256RSAwithSHA256 和 SHA256 的区别
【发布时间】:2016-06-22 05:56:38
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    采用如下哈希算法,

    1. 发送方将消息及其哈希发送给接收方。 [使用哈希]
    2. 接收方对消息进行散列以生成新散列。 [使用哈希]
    3. 接收方检查新哈希是否等于原始哈希。
      • 如果相等,则确认消息完整性并且接收方进一步处理消息。
      • 如果不相等,则消息被篡改,接收者丢弃该消息。

    这里,接收者如何确认消息及其哈希确实是由预期的发送者发送的?在上述情况下,接收方没有对发送方进行身份验证或识别。

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-07-24
      • 2019-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-06
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多