【问题标题】:Help digitally signing hashed (SHA1) string帮助对哈希 (SHA1) 字符串进行数字签名
【发布时间】:2010-08-31 14:09:05
【问题描述】:

我将数据以带有标题和正文的 xml sn-p 的形式发布到 REST URI。 正文被加密,然后标头包含一个数字签名(这是用 SHA1 散列然后加密的加密正文。 我的问题是,如何创建签名。用于加密的方法是什么 - 我被告知使用与 Rinjdael 加密正文相同的共享密钥。

谢谢

【问题讨论】:

    标签: c# web-services digital-signature


    【解决方案1】:

    您可以使用 RSA 进行签名。

    这是一个链接:How to: Sign XML Documents with Digital Signatures

    我不太确定是否使用与签名相同的密钥进行加密,因为 RSA 签名是一种公钥/私钥签名方法,它允许使用私钥安全地创建签名,并且仅使用公钥在客户端上进行验证。

    作为补充,加密!= 散列。 SHA1 是一种散列算法,又名。单向不可逆函数。加密是可逆的。加密是一种双向功能。

    【讨论】:

    • 你把公钥和私钥弄混了。签名也涉及哈希和加密。
    • @Henk - 谢谢,已解决。对于签名部分,是的,我知道。我只是不知道操作是否知道两者之间的区别,所以我想我会添加它。
    【解决方案2】:

    签名涉及非对称加密。

    • 发件人创建散列并使用他的自己的私钥 =>签名
    • 对其进行加密
    • 接收方使用发送方的公钥解密签名。
    • 接收方对接收到的数据进行哈希处理,并比较本地哈希和解密后的哈希
    • 如果它们匹配,则数据来自私钥的所有者

    所以不,您不使用(对称)Rijndael 密钥。

    【讨论】:

      猜你喜欢
      • 2011-08-24
      • 2011-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-25
      • 2011-06-27
      • 2013-06-06
      相关资源
      最近更新 更多