gpt4 book ai didi

javascript - RSAwithSHA256 和 SHA256 之间的区别

转载 作者:行者123 更新时间:2023-12-02 14:29:45 30 4
gpt4 key购买 nike

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

最佳答案

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

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

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

采用的哈希算法如下,

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

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

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

因此,当同时使用公钥加密和哈希算法时,

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

关于javascript - RSAwithSHA256 和 SHA256 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37941450/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com