【问题标题】:Getting public key using modulus and exponent使用模数和指数获取公钥
【发布时间】:2013-04-07 14:17:49
【问题描述】:

你好,另一个问题另一个问题..

我在一个解密加密消息的 C# 项目中。用于解密我正在使用 openssl。我可以使用私钥加密消息并使用以下代码解密公钥

CryptoKey key = CryptoKey.FromPrivateKey(prvkey, null);
RSA rsa = key.GetRSA();
byte[] alinan = System.Text.Encoding.UTF8.GetBytes(textBox1.Text);
byte[] sonuc = rsa.PrivateEncrypt(alinan, RSA.Padding.PKCS1);

key = CryptoKey.FromPublicKey(pubkey, null);
rsa = key.GetRSA();
byte[] cozulen = rsa.PublicDecrypt(sonuc, RSA.Padding.None);

但是对于我的项目,我没有公钥,我只有模数和指数。我不知道如何使用模数和指数来获取公钥。我做了很多搜索,但我找不到任何正确的答案。有人有想法吗?

谢谢..

【问题讨论】:

  • 如果您没有公钥,您将无法解密消息。

标签: c# openssl public-key modulus exponent


【解决方案1】:

至少在 c++ openssl 上的过程是:

1 - 从字节数组中生成两个 BigNumber(模数和指数)

2 - 创建一个新的(空)RSA 对象

3 - 设置 RSA 对象的 n(模数)和 e(公共指数)属性。

您可以在任何技术(java、java 卡等)中复制此过程

【讨论】:

  • 仅供参考,RSA 公钥只是公共模数和公共指数的组合。
猜你喜欢
  • 2018-06-10
  • 1970-01-01
  • 2014-04-16
  • 2023-03-21
  • 1970-01-01
  • 2011-08-31
  • 2020-08-13
  • 2015-10-13
  • 2017-05-27
相关资源
最近更新 更多