【问题标题】:C# signing a xml document with out using System.Security.Cryptography.XmlC# 在不使用 System.Security.Cryptography.Xml 的情况下签署 xml 文档
【发布时间】:2020-11-10 19:18:19
【问题描述】:

有没有办法在不使用 System.Security.Cryptography.Xml 形式的类的情况下对 Xml 文件进行签名?

可以通过“手动”实现来实现 SignedXml.ComputeSignature() 功能吗?类似于:

  1. 在签名中创建必要的元素
  2. 使用 SHA512.ComputeHash() 计算摘要值
  3. 使用 RSACryptoServiceProvider.SignData() 计算 SignatureValue,并将 SignedInfo 作为输入

欢迎提供有关 SignedXml.ComputeSignature() 实际执行方式/内容的任何资源。

【问题讨论】:

    标签: c# x509certificate2 xml-signature


    【解决方案1】:

    可以通过“手动”实现来实现 SignedXml.ComputeSignature() 功能吗?

    当然可以,但是如果您想创建一个兼容的签名,您就必须完成所有相同的工作。幸运的是源代码已经发布:https://source.dot.net/#System.Security.Cryptography.Xml/System/Security/Cryptography/Xml/SignedXml.cs,ec07e01153e4b893

    任何有关 SignedXml.ComputeSignature() 实际执行方式/内容的资源也将受到欢迎。

    SignedXml 是 xmldsig 1.1 的实现:https://www.w3.org/TR/xmldsig-core1/

    【讨论】:

    • 这是哪个 .Net 版本? .Net Core 5.0 ?
    • @PerG source.dot.net 显示了 .NET 的主分支,可能已经过时了几天。但由于自 2015 年左右以来 SignedXml 没有对其进行任何功能工作,因此该代码是永恒的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-05
    • 2021-11-24
    • 2014-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多