【发布时间】:2015-02-21 03:28:30
【问题描述】:
使用此代码检索公钥字节...
var pubKey =
AppDomain.CurrentDomain.DomainManager.EntryAssembly
.GetName().GetPublicKey();
密钥开头(前 32 个字节)的常见结构是什么? 它不是 ASN.1,它可能不是可变的。我可以谷歌它并获得重复。
// 00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00 00 24 00 00 52 53 41 31
是全部颠倒还是只是其中的一部分(例如末尾的模数)? 52 53 41 31 是 RSA1 的字符串。
我的密钥模数是 1024 位,所以我一直在寻找描述长度的东西。
0x0400 (00 04 B.E.) 将是 1024(位),0x80 将是 128(字节,1024/8)。
// 00 04 00 00 01 00 01 00
这些最后 4 到 6 是公共指数吗?大端还是小端?最后一个 null 是终止符还是间隔符?
调查RSAPKCS1SignatureFormatter 和RSAPKCS1SignatureDeformatter 的实现(.NET 和 Mono)并不容易。
删除编辑,回答自己的问题...除非有人提出更好的答案或添加包括原因在内的详细信息。
【问题讨论】:
标签: c# .net-assembly public-key modulus exponent