【问题标题】:Can you edit padding parameters for RSACryptoServiceProvider?您可以编辑 RSACryptoServiceProvider 的填充参数吗?
【发布时间】:2016-02-25 21:41:37
【问题描述】:

我正在使用 RSACryptoServiceProvider 类在 vb.net 上编写 RSA 加密代码。您可以选择使用 pkcs v1.5 或 OAEP 填充,但我不明白它的参数是否可以显示或可以编辑。我见过 RSAOAEPKeyExchangeFormatter 类和 RSAPKCS1KeyExchangeFormatter 类,但我不知道如何使用它们。 是否可以编辑填充字节的参数并从您自己的随机字节生成器中导入填充字节? 是否有一个示例代码可以做到这一点,我可以查看和理解该过程? 一般RSACryptoServiceProvider类的padding参数可以改吗?

【问题讨论】:

  • 可以肯定的是,您要求提供自己的随机数生成器以在 RSAOAEPKeyExchangeFormatter 和其他人中使用,以便它可以产生确定性填充,对吗?我不认为这是可能的,但可能有解决方法。为什么要这样做?
  • 我需要能够编辑部分或全部用于填充的参数。这是针对具有最少加密位和高级隐身性的个人项目。基本上我想创建另一种基于 rsa 的加密算法。如果这不能通过 .net 类来完成,还能怎么做?是否可以重新编写填充代码?
  • 我认为你需要写很多东西。无论如何,源代码是可用的(example),所以你可以尝试一下。
  • 好的,我试试。谢谢。

标签: vb.net random cryptography rsa padding


【解决方案1】:

不,.NET 不公开 RSA 的底层数据填充器,也不支持原始 RSA 加密(以便您预先定义填充)。

完成您所要求的唯一方法是找到 RSA 的第 3 方实现,自己编写 RSA(通常被认为是一个坏主意),或者对底层 Windows CAPI 或 CNG 加密例程进行 p/invoke(例如NCryptEncrypt) 执行无填充 RSA 加密。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-14
    • 1970-01-01
    • 2019-01-26
    • 2021-11-26
    • 2021-06-04
    • 2016-05-21
    • 2018-11-04
    • 1970-01-01
    相关资源
    最近更新 更多