C# 用C语言对数据进行签名#

C# 用C语言对数据进行签名#,c#,rsa,digital-signature,sha256,C#,Rsa,Digital Signature,Sha256,我有一个使用RSA算法签名的文件,使用两种方法: 弹跳船舱 openssl 这两种方法都会产生两种不同的输出,openssl会产生有效的文件。我不知道为什么我的c代码输出错误 这是我在c语言中为bouncy castle编写的代码# 我不知道为什么我的c代码会导致不同的输出 我不认为ReadText总是返回与openssl处理的二进制文本相同的文本。当然,在执行以下行后,只需将bytes变量写入文件: var bytes = Encoding.UTF8.GetBytes(data); 例如,您

我有一个使用RSA算法签名的文件,使用两种方法:

  • 弹跳船舱
  • openssl
  • 这两种方法都会产生两种不同的输出,openssl会产生有效的文件。我不知道为什么我的c代码输出错误

    这是我在c语言中为bouncy castle编写的代码#


    我不知道为什么我的c代码会导致不同的输出

    我不认为
    ReadText
    总是返回与
    openssl
    处理的二进制文本相同的文本。当然,在执行以下行后,只需将
    bytes
    变量写入文件:

    var bytes = Encoding.UTF8.GetBytes(data);
    
    例如,您可以使用
    sha256sum
    比较这两个文件


    如果这确实是罪魁祸首,那么只需将文件读入二进制文件并签名即可。

    谢谢@Maarten。是的,你是对的ReadText()是罪魁祸首。但现在我面临另一个问题,即在将大文件转换为字节数组时对其进行签名(抛出outOfMemoryException)。我已经经历过了,但没有成功。你知道我怎样才能在蹦蹦跳跳的城堡里做到吗。
    openssl dgst -sha256 -sign content_private_key.pem -out content.zip.sig content.zip
    
    var bytes = Encoding.UTF8.GetBytes(data);