当前位置: 首页 > 知识库问答 >
问题:

C语言中的RSASSA-PSS#

楚昀
2023-03-14

有人知道RSACryptoServiceProvider使用哪种签名算法吗。签名杂凑?我相信它是RSAPKCS1,它还安全吗?

有没有人想过将RSASSA-PSS配置为RSACryptServiceProvider的签名算法,而不使用像BouncyCastle这样的第三方库?

提前谢谢。

共有1个答案

相温文
2023-03-14

RSACryptoServiceProvider只能执行PKCS-1签名。

在里面NET 4.6在RSA基类上添加了一组新方法,其中添加了一个rsasignatureadding参数。RSACng类可以通过rsasignatureadding执行RSASSA-PSS。Pss值(带有MGF-1、MGF摘要和Pss摘要的Pss都是消息摘要,salt大小是摘要大小)。

.NET 4.6还为从证书获取密钥增加了更好的类型安全性,新方法很可能返回RSACng:

using (RSA privateKey = cert.GetRSAPrivateKey())
{
    return privateKey.SignHash(hash, HashAlgorithmName.SHA256, RSASignaturePadding.Pss);
}
 类似资料:
  • 我们有些时候需要使用一些固定的名称来代表固定的数值,比如在计算你的课程成绩的时候,有的课程会出现用英文字母 A-F 来打分,这个时候你需要换算为一个固定的分值来计算平均分。要实现这个功能,你可以选择在程序的开始定义一系列的常量,但是这样的定义会非常繁琐,而且不方便维护。这个时候就出现了一种变量的类型,枚举。 1. 声明 enum 声明一个枚举类型,可以采用关键字 enum 加上一个自定义的名称,再

  • 由于 C 语言是强类型语言,不能如同某些语言一样,可以在变量中存储任意元素。所以在有的时候会遇到一些问题。比如你有一个变量需要存储计算结果,计算结果有时可能是整数,有时可能是浮点数。这里我们介绍其中可以做到不更改变量名就可以存储不同类型数据的变量。 1. 声明 union 和之前介绍的 struct 的声明方式是类似的,通过关键字 union ,以及这个 union 的名称,还有一系列的变量类型以

  • 在前面我们学习了很多种类的变量,每个变量都会有一种类型。但是如果我们需要定义一个变量,可以同时存储不同的类型的变量,那会在很多场合下很方便的使用。比如我们常见的通信录,里面会包含很多信息,比如姓名,电话号码,邮箱地址等信息。这里面就会涉及到整数,字符串等等。如果每个人建立的时候都分别声明一次其中的变量,那么工作量就会非常的大,也很容易出现错误。 那么怎么解决这种情况呢?这就是今天我们要讲解的内容。

  • 这节课我们来学习下程序中另外一个非常重要的语句:if。 1. 语法 if (判断条件布尔运算) { 条件成立后运行的语句 } 这里的条件判断采用了布尔运算,也就是真值和假值两种情况。当 if 后面放入的条件判断语句的执行最终结果为真的时候,就会执行花括号中的语句,如果条件语句最终的结果为假,那么就不会执行花括号 中的语句,程序会跳过花括号中的代码段,继续执行后面的代码。 这里给出了真值表,以供

  • 本文向大家介绍Go语言中嵌入C语言的方法,包括了Go语言中嵌入C语言的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Go语言中嵌入C语言的方法。分享给大家供大家参考。具体分析如下: Go语言官方带了一个工具叫cgo,可以很方便的在Go语言代码中内嵌C代码或做C和Go代码的集成。下面是一段简单的在Go中内嵌C的实验代码: 把上面代码保存到ctest.go文件,运行:go run cte

  • 在欢迎你拥抱OpenFOAM之前,首先欢迎来到C++的世界! 若有程序员说 xxx语言是世界上最好的语言 不严重的情况是整个聊天群下午就会爆掉了,严重的是会引起人身攻击的。虽然PHP直接在官方文档里面说 PHP is the best language for web programming 但C++并没有说C++ is the best language for scientific compu