如何在java中获得模和模?
是否可以从ssh公钥(如以下公钥)中检索模数和xp:如何在java中获得模和模?,java,ssh,cryptography,rsa,ssh-keys,Java,Ssh,Cryptography,Rsa,Ssh Keys,是否可以从ssh公钥(如以下公钥)中检索模数和xp: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9t1iUplXCsaamE3QPxiB4G1BTZHH4oK4Ti2pHgfOEDLsVWrhycX+f8GbNnRATONkGjoDH9WWku1Eibbd2qpSfRrYowVmE85tEqXrT1mjPMSXrdKrLa4a9NLgHtaROZPNTxkuBHjdQkfgMnId/ryUw3maj+kHW1lUEx+wpALyLNTNJP0RFgO72x47
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9t1iUplXCsaamE3QPxiB4G1BTZHH4oK4Ti2pHgfOEDLsVWrhycX+f8GbNnRATONkGjoDH9WWku1Eibbd2qpSfRrYowVmE85tEqXrT1mjPMSXrdKrLa4a9NLgHtaROZPNTxkuBHjdQkfgMnId/ryUw3maj+kHW1lUEx+wpALyLNTNJP0RFgO72x47wNELvolcZttaSTqrncH1ClcY2WQ4kmfOvzAgo1sRtRolc/6k17Oeo7eQRWgT4IwjLS9hYnXNicCn5Hg313iryJJ6Zq/eR/ormM7t8LMH8479qzdxinSk3GNCCw3xRDzYD/zcLsAGKwUnA+0g0JUdxEzQpGMHr user@mc-s08347cdc1.local
我需要以某种方式从上面的密钥获取这些参数,这样我就可以执行下面的代码来生成并获取java中的公钥
RSAPublicKeySpec ks = new RSAPublicKeySpec(modulus, pubExp);
RSAPublicKey pubKey = (RSAPublicKey)keyFactory.generatePublic(KeySpec);
显然,SSH密钥使用中定义的格式。因此,您可以简单地对数据进行base64解码(例如,使用Apache Commons编解码器库),然后自己解析二进制结果 这是base64解码字符串的输出(您可能需要后缀2、3或4'='个字符,解码器才能工作,您需要4个base64编码字符的倍数): 现在让我们分析一下(第一部分是Big-Endian格式的四字节长度): 最后一部分是模量。它是129字节而不是128字节,因为库似乎使用有符号整数。由于1024位模数始终以设置为1的第一位开始,因此可以确保在无符号表示的左侧有一个
00
值填充字节
快乐的编码,从中获取的一些信息。请您至少投票或接受我之前的答案,jonney?很好!谢谢,我会试试的
000000077373682D727361000000030100010000010100BDB75894A655C2B1A6A613740FC620781B50536471F8A0AE138B6A4781F3840CBB155AB87271
00000007 7373682D727361 // "ssh-rsa" string in ASCII
00000003 010001 // public exponent, the fourth number of Fermat or 65537 in decimals
00000101 00BDB75894A655C2B1A6A613740FC620781B50536471F8A0AE138B6A4781F3840CBB155AB87271