c# RSACryptoServiceProvider 中的指数和模数是什么类型的数据?
What kind of data are exponent and modulus in c# RSACryptoServiceProvider?
我在 C# 中使用 RSACryptoServiceProvider 生成了 public 密钥:
<RSAKeyValue>
<Modulus>
4kKhD/FWAMtQTRifArfXjxZN+6bOXTkHrVpyz/1wODhSOBqDewoSOFAp5boBd3wFjXszHA+gpUxZNWHRTj898Q==
</Modulus>
<Exponent>
AQAB
</Exponent>
<RSAKeyValue>
这些参数是在初始化为 512 位的 RSA 变量中生成的
new RSACryptoServiceProvider(512)
现在,我需要使用这些(模数和指数)来加密一些数据,但是在 groovy(groovySoapUI 测试中的脚本)。
在 groovy 中,我正在测试 RSA 加密,对于它的 public 密钥,它得到的模数和指数只有十进制数。上面的模数看起来像一个 base64 字符串,但是当我尝试在 groovy 中解码时,它会得到一些特殊字符,我使用的代码是
byte[] decoded = encoded.decodeBase64()
string s == new String(decoded)
我最终需要的是知道如何使用c#中得到的模数和指数来加密groovy中的一些数据。
一些帮助如何做到这一点?
Modulus
是 byte[]
.
有关详细信息,请参阅 RSAParameters structure。
在此处的 XML 表示中,数字是 Base64 编码的 Big Endian 字节数组表示形式。最明智的字符串格式(除了 Base64)是十六进制,因为它在字节边界对齐;你可能有一个十六进制到 BigInt 的解码例程。
指数
Base64: AQAB
Hexadecimal: 01 00 01
Decimal: 65537
模数
Base64:
4kKhD/FWAMtQTRifArfXjxZN+6bOXTkHrVpyz/1wODhSOBqDewoSOFAp5boBd3wFjXszHA+gpUxZNWHRTj898Q==
Hexadecimal:
E2 42 A1 0F F1 56 00 CB 50 4D 18 9F 02 B7 D7 8F
16 4D FB A6 CE 5D 39 07 AD 5A 72 CF FD 70 38 38
52 38 1A 83 7B 0A 12 38 50 29 E5 BA 01 77 7C 05
8D 7B 33 1C 0F A0 A5 4C 59 35 61 D1 4E 3F 3D F1
Decimal:
11 850 211 890 167 428 942 656 005 762 527 792
664 504 148 414 649 299 622 730 495 954 496 884
582 668 295 994 906 881 962 852 147 063 424 895
822 707 299 811 616 971 053 013 246 862 591 780
599 074 078 193
我在 C# 中使用 RSACryptoServiceProvider 生成了 public 密钥:
<RSAKeyValue>
<Modulus>
4kKhD/FWAMtQTRifArfXjxZN+6bOXTkHrVpyz/1wODhSOBqDewoSOFAp5boBd3wFjXszHA+gpUxZNWHRTj898Q==
</Modulus>
<Exponent>
AQAB
</Exponent>
<RSAKeyValue>
这些参数是在初始化为 512 位的 RSA 变量中生成的
new RSACryptoServiceProvider(512)
现在,我需要使用这些(模数和指数)来加密一些数据,但是在 groovy(groovySoapUI 测试中的脚本)。 在 groovy 中,我正在测试 RSA 加密,对于它的 public 密钥,它得到的模数和指数只有十进制数。上面的模数看起来像一个 base64 字符串,但是当我尝试在 groovy 中解码时,它会得到一些特殊字符,我使用的代码是
byte[] decoded = encoded.decodeBase64()
string s == new String(decoded)
我最终需要的是知道如何使用c#中得到的模数和指数来加密groovy中的一些数据。 一些帮助如何做到这一点?
Modulus
是 byte[]
.
有关详细信息,请参阅 RSAParameters structure。
在此处的 XML 表示中,数字是 Base64 编码的 Big Endian 字节数组表示形式。最明智的字符串格式(除了 Base64)是十六进制,因为它在字节边界对齐;你可能有一个十六进制到 BigInt 的解码例程。
指数
Base64: AQAB
Hexadecimal: 01 00 01
Decimal: 65537
模数
Base64:
4kKhD/FWAMtQTRifArfXjxZN+6bOXTkHrVpyz/1wODhSOBqDewoSOFAp5boBd3wFjXszHA+gpUxZNWHRTj898Q==
Hexadecimal:
E2 42 A1 0F F1 56 00 CB 50 4D 18 9F 02 B7 D7 8F
16 4D FB A6 CE 5D 39 07 AD 5A 72 CF FD 70 38 38
52 38 1A 83 7B 0A 12 38 50 29 E5 BA 01 77 7C 05
8D 7B 33 1C 0F A0 A5 4C 59 35 61 D1 4E 3F 3D F1
Decimal:
11 850 211 890 167 428 942 656 005 762 527 792
664 504 148 414 649 299 622 730 495 954 496 884
582 668 295 994 906 881 962 852 147 063 424 895
822 707 299 811 616 971 053 013 246 862 591 780
599 074 078 193