gpt4 book ai didi

c# - RSA.SignHash SHA512 和 SHA256 给出相同的签名长度

转载 作者:太空宇宙 更新时间:2023-11-03 22:43:20 25 4
gpt4 key购买 nike

奇怪,但是代码的签名数组长度是相同的:

using (RSA rsa = certifiateToUse.GetRSAPrivateKey())
{
byte[] bytesData = Encoding.UTF8.GetBytes(input);
byte[] hash512 = rsa.SignHash(bytesData, HashAlgorithmName.SHA512, RSASignaturePadding.Pss);
byte[] hash256 = rsa.SignHash(bytesData, HashAlgorithmName.SHA256, RSASignaturePadding.Pss);
}

hash512 和 hash256 都是 512 数组长度。我找不到一个合理的答案。也许我遗漏了一些明显的东西?我预计它的长度分别为 512 和 256 字节。

最佳答案

SHA-256 和 SHA-512 分别产生 256 位和 512 位哈希值。

您的 RSA key 是 1024 位或 2048 位,用作密码时的 block 大小是相同的。

由于两个哈希都小于 RSA block 大小,因此需要将它们填充到该大小。由于它们被填充,生成的签名将具有相同的大小,无论使用何种哈希算法

这里的线索是最后一个参数,它指定了填充算法。

关于c# - RSA.SignHash SHA512 和 SHA256 给出相同的签名长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51165457/

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