gpt4 book ai didi

c# - c# RSACryptoServiceProvider 中的指数和模数是什么类型的数据?

转载 作者:行者123 更新时间:2023-11-30 21:45:55 26 4
gpt4 key购买 nike

我有使用 RSACryptoServiceProvider 在 C# 中生成的公钥:

<RSAKeyValue>
<Modulus>
4kKhD/FWAMtQTRifArfXjxZN+6bOXTkHrVpyz/1wODhSOBqDewoSOFAp5boBd3wFjXszHA+gpUxZNWHRTj898Q==
</Modulus>
<Exponent>
AQAB
</Exponent>
<RSAKeyValue>

这些参数是在初始化为 512 位的 RSA 变量中生成的

new RSACryptoServiceProvider(512)    

现在,我需要使用这些(模数和指数)来加密一些数据,但在 groovy 中(SoapUI 测试中的 groovyscript)。在 groovy 中,我正在测试 RSA 加密,对于它的公钥,它只获得十进制数的模数和指数。上面的模数看起来像一个 base64 字符串,但是当我尝试在 groovy 中解码时,它得到了一些特殊字符,我使用的代码是

byte[] decoded = encoded.decodeBase64()
string s == new String(decoded)

我最终需要的是知道如何使用在c#中获得的模数和指数来加密groovy中的一些数据。对如何做到这一点有帮助吗?

最佳答案

在此处的 XML 表示中,数字是 Base64 编码的 Big Endian 字节数组表示形式。最明智的字符串格式(除了 Base64)是十六进制,因为它在字节边界对齐;并且您可能有一个从 Hex 到 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# - c# RSACryptoServiceProvider 中的指数和模数是什么类型的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39727230/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com