警告:最初的问题是关于 PKCS#1 编码的密钥,而问题中的实际示例需要 SubjectPublicKeyInfo (X.509) 编码的密钥。
我目前正致力于在 java 中从头开始实现 RSA 算法,特别是在密钥生成方面。现在我的代码可以给我三个 BigIntegers n、e 和 d。
从我在网上看到的情况来看,RSA 密钥(很像 PGP 签名)通常是字符的混合,而不仅仅是很长的数字;显然这是因为密钥被加密/翻译(我不太确定)成 PKCS#1。
我自己会怎么做呢?此外,PKCS#1 SubjectPublicKeyInfo 是我想要显示的键还是有更新的格式?
编辑:为清楚起见,这是我正在寻找的示例:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0
FPqri0cb2JZfXJ/DgYSF6vUpwmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/
3j+skZ6UtW+5u09lHNsj6tQ51s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQAB
-----END PUBLIC KEY-----
我目前有:
Public Key (n,e): (25130290470670502980544427869200613840944965290040433220698179071215137002904823499373962164071905921326803837460733139500455896910114421141830335882737678919237073090149470600927019562678483947908156329730770276498955439764614844798829603416304775442087438623389826719642285111749464396302305124179886483673046650125158307930593778247437940929550491287419436361905923356252487704851166279431792122641372330876814779543893241235355988829436458897455503500810769146739895787437926366072829812130032509796362669335922016603663923790043992999351304972183762844549989472560311169566110061553119311399708581940621713200371,65537)
我不知道如何将这个巨大的数字转换为标准格式的密钥。