Rag*_*ghu 5 .net c# encryption cryptography rsa
我需要使用OaepSHA256和MGF1填充来使用RSA公钥加密普通字节.所以我想我可以编写以下代码(使用.net framework 4.7):
var encryptionCert = new X509Certificate2(certBytes);
using (var rsaPublicKey = encryptionCert.GetRSAPublicKey()) // Get an instance of RSA derived class
{
var encryptedKeyBytes = rsaPublicKey.Encrypt(plainBytes, RSAEncryptionPadding.OaepSHA256);
}
Run Code Online (Sandbox Code Playgroud)
我不知道MGF1填充和最佳非对称加密填充(OAEP)是否相关.
这是我的问题:
OAEP是填充方案,需要2个具有不同属性的哈希函数才能运行.一个散列函数应将任意大小的输入映射到固定大小的输出.这种类型的散列函数是众所周知的,SHA-256
,MD5
等都是这种类型.规范允许不同的功能用于OAEP填充,例如SHA-256,SHA-1等.
另一个散列函数应将任意大小的输入映射到任意大小的输出 这种散列函数称为"掩码生成函数"(MFG).相关RFC只定义了一个这样的函数MFG1:
这里给出一个掩码生成函数:MGF1,它基于散列函数.
...本文档的未来版本可以定义其他掩码生成功能.
因为只有一个允许的掩码生成函数 - .NET api不允许您选择它(没有可供选择)并且只使用它(MGF1)和RSA OEAP填充.
归档时间: |
|
查看次数: |
1175 次 |
最近记录: |