在Java中生成公钥和私钥会生成所有私钥和公钥的相似开始

我正在使用Java生成两个公用/专用密钥。一遍又一遍地。每次都不一样。但是他们总是开始一样。生成它们的哈希值不同。

我已经了解到这是从头开始编码的算法。但是,我想我希望第三方提供的信息越少越好,包括用于生成它们的信息。

sun.security.rsa.RSAPublicKeyImpl.writeReplace()方法中,我可以看到所包含的算法。

  1. 我知道他的公钥/私钥部分是可读的。我想知道是什么。我怎样才能看到说的是什么?Base64解码开始不会产生任何可读性。

  2. 如何从标题中删除此信息?后果是什么?它实际上仅在内部使用,因此如有必要,我们可以对丢失的部分进行硬编码。

  3. 关于为什么默认包含此信息并且很难编写代码的其他想法?RsaPublicKey是最终的。如果需要,我们应该能够以数学形式获得公钥和私钥。质数和指数为什么包括所有这些废话?

我更愿意透露有关我们系统的任何信息,包括Java,Jetty,RSA,AES,DES或其他。

但首先,什么 这些 零件

打印公钥:

MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA opcFuEA6sraQ / U7ae77DBd9rFYDC5LhTn6B4hy / vecRB1Wyb44 / HZxI4pUJgUZ + eUNtDucbxhc9vl9wC77MRJoyKV59M4sMjVMX3omhqvFcvKysktGhseRJsrfS / NIbL3JHDk1PC37c8m2xglnCvS8tK7nD8p4hVygj2jRCiHcLMasZ0m2ZB44t0Fc4zRp / Z5Gkj72tgke5iLmxoPjAJu + DS9 / EUAck1jsEKWaDLFR7AWPKiMPysqIiiJi3Gy5ukOWhvb + T5dvFSCWKvFG9ftmyFPC4hqmjJGG8GsD4imA2HCSvpM + iLLJWYtZ7jzNQCNtIsU2kEogt4K5FGgQ / e0DOld0ynRirDtBJsgYD2s68vv0kl8zrNt8l9IEFnI4PhmjfKtj1oL35T / Mdi7PxGG / pyoTiUXjXr5ASIk8Z6i + yp2A787nhKF5RW2x0WOb8TSu3l6iBMbQOqt8Z81gHiqGaIWYUqU911Yu / znNQFj1PwVb + bzVm5lOGHHfHFJeT2ULHKZYEK5tIYDL1 + JFeEKVPJMpjJzgMOnseaV5kXMHFWkvCmyObFX7f63JeV + OHTtoZrzYp6Ky9Zkth6FV3AcPJcyHjcbeoMck75V0JI1M0FK7QFwN + t3r8tfmCCjHUu9XExigJELOByR + 8O6643il7dyciLg8v4ZU7bbJDeeSMCAwEAAQ ==

MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA hpKUNNBb5wr + PF4 ++ a8Ee / fe6sWm8HZmCScdBU2XWlqHFHdYobq3j4q61oQYzFExVXv7Kx0cTaLMJEnTrax + tZSnTBzrgKcb44o4TIHVozaeA9AgObkMD0tVc31F8zaGe955r3tiHNuQ4mtDji7Y7KZ8Y9rHvbjoyoeIdnomcqpmDRz7nlmzqwVQ8nCg47KHSxJGLGFCC0Kzrms4L42t9Y55jDx6xdhcmVRsoax3yLnfoA2fL08NkCSSjG / kWPd3VcQ4BBKAZJBVKJgoIRycFhUDiMMNC4krADr / r4QSslaRco / + + BduilkLpgFiIKmiaWXZTw1ySYthqMEMVEuMB + UdfouH6a8FaPzVYhi9pSRF9dLnQb8twoeEvG3Rt + zMPboAiW8BKjiSRB + Y8UN4Ca2FPROBlfVo88w1b9f + sg62CEF2ncHQUKxFTUCXpvC5P3DUYcBGsYdqs0PUufLFzLbsFt + nIw3G1lOxJJp9eAG8jI24D5crV7ZV + tHkRS9FUGyNGfsbNkLgaMOGpTWV2RE FLfnfBKMiajLKApNcTK / ZOoGiZIjTMR93KtxouSn2 / vE7PZj8elLAeiwTP / qbOmJF7jczREoreAjTZf35hyVQbRU + W3aT7WKd + b9Q5isnwKJkOydRYRv8ocOJ7bSP17wo1vST + a2snp0O6eRbcFMCAwEAAQ ==

打印私钥:

MIIJRAIBADANBgkqhkiG9w0BAQEFAASCCS95xEHVbJvjj8dnEjilQmBRn55Q20O5xvGFz2 4wggkqAgEAAoICAQCilwW4QDqytpD9Ttp7vsMF32sVgMLkuFOfoHiHL + + + MAm74NL38RQByTWOwQpZoMsVHsBY8qIw X3ALvsxEmjIpXn0ziwyNUxfeiaGq8Vy8rKyS0aGx5Emyt9L80hsvckcOTU8LftzybbGCWcK9Ly0rucPyniFXKCPaNEKIdwsxqxnSbZkHji3QVzjNGn9nkaSPva2CR7mIubGg / KyoiKImLcbLm6Q5aG9v5Pl28VIJYq8Ub1 + 2bIU8LiGqaMkYbwawPiKYDYcJK + kz6IsslZi1nuPM1AI20ixTaQSiC3grkUaBD97QM6V3TKdGKsO0EmyBgPazry + / + SSXzOs23yX0gQWcjg GaN8q2PWgvflP8x2Ls /污点+ nKhOJReNevkBIiTxnqL7KnYDvzueEoXlFbbHRY5vxNK7eXqIExtA6q3xnzWAeKoZohZhSpT3XVi7 / Oc1AWPU / BVv5vNWbmU4Ycd8cUl5PZQscplgQrm0hgMvX4kV4QpU8kymMnOAw6ex5pXmRcwcVaS8KbI5sVft / rcl5X44dO2hmvNinorL1mS2HoVXcBw8lzIeNxt6gxyTvlXQkjUzQUrtAXA363evy1 + YIKMdS71cTGKAkQs4HJH7w7rrjeKXt3JyIuDy / hlTttskN55IwIDAQABAoICAQCbdRbM8uysz46WBH02cFD8HoC + 0JyIIA4kxEQ5zgWFQbdIn032KRUZYfyzVmHN6XZwDRYWXTe1H3 + tjXlpQqeVWi80VGYpMzdm6No7eOcFKb854Uh5DpcYtBshwK / JQ1FMljqPdTkQupzCZr97WEbji38buQB6Fwsf364Ndufq2MSnGxWHOCCrtjzKVJwGXPTzRexMETkGjw1lIdYSD9BeyTouQ11Dz + Tbl4uT4wAKM5rp8SRO / MJ / w5R2OLKpHynIkihqrl4v8dDklGyed1bmj6BcyCb8TrBoIlAc12wwQk7o4Albzm6ztF2M2l0pDVUIobAsGG + LmLfPwFnPMSNyFsg / A + 8R / SUWHdPP / Trgxil + iX3Qaagppx3uDvq5uXS1j60Hd2mnMOK8OZUTeh9zPvQ / XqeLLMfL74Z1vnvcS9Vj2vseEQylmYfwZvwwxRzsjd07xjTtpSf8rv1pNFgcBgNONiLa / lyJGGUmRgOBFpH4gpU0AcBSWyL20dwyuwzIYk + bRK7pMteKbe8UMoXcnT6fvnev5orW / SOdhxc0oLgN4VpxPngnBI6yYanO + S55 + TwQOhFI / kmtz / P0rOvWmSvTl5faKYJUpmRCGU2laCqrGJIHr30 / W + Sr5JPXqMBMsViNNzgzU / FExODbLGNs / A4eolMFcKRRmDDKEVesQQKCAQEA8qy + 2HwCDdus / 6s4VjLHqilqtuYaqzmDmF81ZIGk / IBaGv3HjlIuf0Zqu0s1eUsMwZEX1VfEJr0dVBepQCdLnA2dkmOzgiBvljuQfzPEU9bT6MGUexM / 4L6B9F + pllK1LNikFcVHI2TeEe6a18h7Gmn5TVRriA1sORdGNDxNAvg6PQzOBXi3FVzH38GFUSHss7s69kKy / NSDlP443XsKHu / mCzUjIn4ghDOblmyYJz7wfGJCNfic53iv12gvk38CiVLLkqiQBnCgD7B7I5gZ5Z7Dx3qXBhbnIJYG6WRKQDqLHLWHzzbkXMaaBZONnwe1dg5X03T0WX7HliJoNQWVkwKCAQEAq4SIQvSUPixtuDTOPa92UqeUIuEyDtp74rYcSunSaOSNJ1J2ouxWoeoDxHY / uPYmwKQqECsd716ner2mukCcQyupC2mQzbTA7eGY + rPk54gvbqtArFZWrTDanTMHmGPmUrdhVcyigEx6jUhdgpWKPE6InZfxqZXJY23M2nzf4UzMr3TGbEIYuJX9ECkz5AiKg1ybgSC1E3gG0dtPeiJZMZeqSLW9ny1UxTQqyV7YVsbbh5cIS0qYMZgJCF4OJnxYSatkI9IvgpHq5178AywMpUPc3BdVNuekegsgIWYxjWNBO3O8x / N + cPDPTCNPbbAoMESQGQRCN8sP12LhEYbIMQKCAQEA4Xt9AG2JAxNglVakTAN23jcJftQjZ4FTMtsUI0UK5crk7jtrlmPp7Dyjo09oakE / owOL36FjEpOZkq9Bheh9KozEImcdPgWhaTgDNQ4Gl9f + okBsFEd4jPy2hzfzvUcwLHFHVSsuxEZOyN6pZWJUb + CT0jRkjc / bBNkJVDPLYrz + cAdbzl2xz9mbpd6MXyxkYUPQr0yePqm / cUsdzz0p1EEXwMYo1T3YPL4vDP / uCFlE3m32E2vjbngG + uFFg4j59FrH6IdS + 4jeUHWslRAYz / BK / Sh89x2EuBRua6HSFAfRhmVtwS3B1ip6pj / J0UA6bW06UbJT8GwKSwfBR7LenQKCAQBQWGksVD4NUeqj27ixFLysw2uVW0CDzL0z2nMudJHoKQgmX27Lq0J53pGdOndnQYetvjkmEcyYERMLYEP2A8YvgQhTHESE2CN4S7HJ3vNfsl / ly7sj / 93ii3wdH4ZzUHjYTqb99jo5N5pBDKEhRsPWtEMy77Z45n3MYecQgmatt7g6iM1acSv7a + d75pE0RPv9xSfjOVsZn6QyMjXs1KJLpOxT2y7UnfuT1XgllJRrMgQsZAeynWLl + H5iuQyP4rfI6syiKxeuZoRPliMfqUbTNBMF1rhIXAKkWQnYG3Mi9Ffebb0FPX8BkQzKcdAHZfmtgrCtx1ztneXx05PzDdxBAoIBAQDYCcV35Vzziq0jK0oekYqqcqqRI9J8ECee5vl + 30rGKh3TxeV1uobiRba3G5I + wCrjTSV8csr2whTCTDfOF5M7grwTic6xc6CHBYpF00CA5sjBYbnMTdat / UHWt4Bym1hwTvKdtyro1jGVABP5tCwIrK5IctZ4lKRTW5QpzCX7XJqrcl9WqxeN3BfxPDCviiKDQBVT5CsZCw / B78QhWtcCOmy7 / N81TNG4Q / C + bAkCp6xFmsUX2PK9L8GVLGQhi8 / DDPoPvGhxq4YcSK6m / P / Ir2gmHqpIJ00xSsZhRUbc2VR / nAu5Irwzga8nS1ji5EOYFkZgWp + MNALgouPpZo6Lc6CHBYpF00CA5sjBYbnMTdat / UHWt4Bym1hwTvKdtyro1jGVABP5tCwIrK5IctZ4lKRTW5QpzCX7XJqrcl9WqxeN3BfxPDCviiKDQBVT5CsZCw / B78QhWtcCOmy7 / N81TNG4Q / C + bAkCp6xFmsUX2PK9L8GVLGQhi8 / DDPoPvGhxq4YcSK6m / P / Ir2gmHqpIJ00xSsZhRUbc2VR / nAu5Irwzga8nS1ji5EOYFkZgWp + MNALgouPpZo6Lc6CHBYpF00CA5sjBYbnMTdat / UHWt4Bym1hwTvKdtyro1jGVABP5tCwIrK5IctZ4lKRTW5QpzCX7XJqrcl9WqxeN3BfxPDCviiKDQBVT5CsZCw / B78QhWtcCOmy7 / N81TNG4Q / C + bAkCp6xFmsUX2PK9L8GVLGQhi8 / DDPoPvGhxq4YcSK6m / P / Ir2gmHqpIJ00xSsZhRUbc2VR / nAu5Irwzga8nS1ji5EOYFkZgWp + MNALgouPpZo6L

MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQCGkpQ00FvnCv6l / j75rwR7997qxabwdmYJJx0FTZdaWocUd1ihurePirrWhBjMUTF​​Ve / srHRxNoswkSdOtrH61lKdMHOuApxvjijhMgdWjNp4D0CA5uQwPS1VzfUXzNoZ73nmve2Ic25Dia0OOLtjspnxj2se9uOjKh4h2eiZyqmYNHPueWbOrBVDycKDjsodLEkYsYUILQrOuazgvja31jnmMPHrF2FyZVGyhrHfIud + gDZ8vTw2QJJKMb + RY93dVxDgEEoBkkFUomCghHJwWFQOIww0LiSsAOv + vhBKyVpFyj / 4F26KWQumAWIgqaJpZdlPDXJJi2GowQxUS4wH5R1 + i4fprwVo / NViGL2lJEX10udBvy3Ch4S8bdG37Mw9ugCJbwEqOJJEH5jxQ3gJrYU9E4GV9WjzzDVv1 / 6yDrYIQXadwdBQrEVNQJem8Lk / cNRhwEaxh2qzQ9S58sXMtuwW36cjDcbWU7Ekmn14AbyMjbgPlytXtlX60eRFL0VQbI0Z + xs2QuBow4alNZXZET4Ut + d8EoyJqMsoCk1xMr9k6gaJkiNMxH3cq3Gi5Kfb + 8Ts9mPx6UsB6LBM / + ps6YkXuNzNESit4CNNl / fmHJVBtFT5bdpPtYp35v1DmKyfAomQ7J1FhG / yhw4nttI / XvCjW9JP5rayenQ7p5FtwUwIDAQABAoICAHmYXoQuNKxaWegBCEQxqTqeqPS3rXUfdmkUx3swNe81V1Ld198iyJPSBaqpZ4LOZmZYhYXaYuWfkRfFAZivATrvXA9BHmZ8GI4MKXyv4Cr + wd6uI0Ak / Umgh1C4RAlUHkY0qv0t3mQ23P5Jb5w8plOGx2SuncbHGslNl7d9 / dmkMFvu8UiOwvJn9lFqBWZYvTjPBUs6giOMnLCgPv9w5Fu55ggZ6dF1A46kIxger4lWskJ7rHdh1d6FvUlaHRlqWZDMoNTFJvA3Hkt02OW6ZSrqx + U + Wr4urgUiSj / 8daxg3kGG7D + 8ync9dKE83aR8KeNmMJ + YuMjJxYFgS91p8zBBB8O6hKIqE3 / muN0fC4TSgUWrF3vtVvkQJioPsJfKLO / 8AMcfXu5A5jpojwY2ix4FG + Qfh76Hu7m1WlBumMNyqEzDhf0WpqwQQ0ZnTBxvxob1XeFicCZAec + X5m2 + h2GZFoPrlhr3FRv1HeYOc4TxkCyd7365lK7gjXvdzDpLPzYFhblQXbIJXI3hSA0EptNWll + 4bEKheEmXrQ5WcGpLUStBNInDOuo + GFgGhDRZ0Z38jc0axIGqm + 9U7A2SYkdadnZ9TqkDbY9dUSxnwUN / J / GBGX4QuUuf / QPCPdod7bIo6H + PMII2Zggv3k4VqfIgwVjREIlTYDe5C2O0nYrhAoIBAQDxWlfsP5zMHXbeBT83EH60MMxZ1ZvvmWTs / LnSW5jWPHY7s1Z + JMna1AqCL8PocUAukUZGekUbdn0t0rlzVKcaBHLRaZuuY3A6geYwmw4CqK0gIPLOQ8OBAHUmBaHB7Bctz4rLIdkF6VePL6OCa9kxyhw083q1 / mCd2TIQKdoH8 + 4qxiKOz + TfNe57ajGy5Ipqh2pJwLXGze3p +是/ V + 8wabb + Tuj6nig5T5KpjY14B9ifiVPqNI3RZj92xfvFp0O386Cukuhd0HsB0YTP1bJQnm / wnbmgHnfEGaZGSte0zqYiLO420Ivcbw6H4AwFrW0dZ5OlLAyzhSnpx6DnbpxAoIBAQCOvUwXX + z2HuxTU9TNXS3SObewpdpchsMdrQE1FYVNgRgf1v156AscCW79SHyg5ecuorgdqlR5DtTNrWVNY77e02jVOZH8idCO / 0dn2pXJ8EaCV2kz7Objj + LyGlyIgPY0S0FswLI5eg / iRL4DeMkMRqQwcp92wPTMU + IrTvKEcAgVPybMSRt6Rirh7iKzxHUjbkjGYv0XOUaWacOg7i0pVyh + WhUBMkag8dOsYEQGzdpY9vlJl5irSxwb7lnCMMc0YJT05PyKbmYYTI08KaMLB4R6F4KXl56Mh4CAsnpNlAQt23miMO2ZF9FlXiRNR74bjc + pG7oWhzduCUjHDNEDAoIBAQCMG7MgzYjboVso5gjdkXDMb + uhVvTQMc86GDhTWqMt8yl73M8gKYEYzLFRBCOJY30ry1 / TD / t4Rt / CYysPPZxH6T8yPEmJAebbwB7 + JnUKrBrcpOPvQ71RvQ9ExE40Ajcue + YJqBuRZ / VRhQk5pBwQ4FBhmNqqngI + gCCk63bL2RpwsFbNavhlb6yC7pHtVOjZkMTuDbY4s8EibJIX22vhatXPqy6pKGtgk9QGh9i + i94MUkicptdqCLgY3kBVpl4EjX4Xu8g98rpNJ6fRcpqR + UouPNjDVN / q012MEOVxhdPlSq5yaK5SVoc7gp / qyrQvD3yYB48F30Z0UPrQ0xaxAoIBAGQUyAhPovcCwZK / YaLIZXtUKr5523wqpR3mksUknL21 + TNB66IRF9EFsEN5EqFB8XFaeBuctPPYeU7o9 / FmMYtM0eFHJ1vZSVkqFmfz9DiN9vIm1cWpok4GMgqsfxrayUXrSik1hwET25U7u7r1conf8fliNPrv2fR2EEtrZFGFt7Ul / U8ZJ2H5VtHoxX4kDjnUdsRa3bft2ddWuurYdOPaj7Lf + IBJPwpT5KWlLa1TonfkWu / Fki7wT / opidfFmbbYzThUYdmyBHWfHxwC2aW / FJ0CZPdjQLCpxWj3Oxev46o / i64z / jPsZk5bzro8xkfNi7 + 3iCeJkUzex5 + BFf8CggEASv2oLIyZYqRIxYh91mZVk0HNFeWTa9LbrxW8w0foQVY3eabmccLOuLV / 7 / pHzqxBu7dL2UF83sjDXJK7 + U8bQjr8r3Tq40NQCqamgxVQ4 / QHmeOw5ww9s2FYrLG7gekf4QuML1vsSIsVYsfcZKDAiAzoQldd06dcqUeJ6aO6Y9OVDxOoIDbnTDRhMHK + US3AbG8n / ZzInbyq8DjwPcv6pwkZ2L5ma6fLBB / IyI6XfChkIeFedys9Y7K / vkfCKrPYW2mLbr1s / A5fOPgw8OiE / e83biMhO1NLJDQ1r4gdMEeZXiJrTE16tJLUaIMDofrPlRPTlLijFwZ6piduDETH4g ==CqamgxVQ4 / QHmeOw5ww9s2FYrLG7gekf4QuML1vsSIsVYsfcZKDAiAzoQldd06dcqUeJ6aO6Y9OVDxOoIDbnTDRhMHK + US3AbG8n / ZzInbyq8DjwPcv6pwkZ2L5ma6fLBB / IyI6XfChkIeFedys9Y7K / vkfCKrPYW2mLbr1s / A5fOPgw8OiE / e83biMhO1NLJDQ1r4gdMEeZXiJrTE16tJLUaIMDofrPlRPTlLijFwZ6piduDETH4g ==CqamgxVQ4 / QHmeOw5ww9s2FYrLG7gekf4QuML1vsSIsVYsfcZKDAiAzoQldd06dcqUeJ6aO6Y9OVDxOoIDbnTDRhMHK + US3AbG8n / ZzInbyq8DjwPcv6pwkZ2L5ma6fLBB / IyI6XfChkIeFedys9Y7K / vkfCKrPYW2mLbr1s / A5fOPgw8OiE / e83biMhO1NLJDQ1r4gdMEeZXiJrTE16tJLUaIMDofrPlRPTlLijFwZ6piduDETH4g ==

马尔滕·博德威斯

TL; DR请仅依靠私钥本身的安全性,而不是依靠其他任何东西;做到这一点已经足够困难了。如果要提高安全性,请使用外部设备存储密钥,最好是HSM或智能卡。


我已经了解到这是从头开始编码的算法。但是,我想我希望第三方提供的信息越少越好,包括用于生成它们的信息。

这直接违反了Kerckhoff的原理。如果您依赖于这种秘密,那么您已经迷路了。它们会泄漏,并且鉴于它们没有什么特别之处,因此大约需要猜测一个攻击者。

如何从标题中删除此信息?后果是什么?它实际上仅在内部使用,因此如有必要,我们可以对丢失的部分进行硬编码。

RSA密钥包含多个组件。其中只有CRT参数和/或私有指数需要保持私有。但是您仍然需要以某种方式对它们进行编码。其余的仅指定它是RSA密钥,但是无论如何从参数来看,这显然不那么明显。

关于为什么默认包含此信息并且很难编写代码的其他想法?RsaPublicKey是最终的。如果需要,我们应该能够以数学形式获得公钥和私钥。质数和指数。为什么包括所有这些废话?

您可以直接获取模量和指数作为BigInteger值。有你的数学形式,对不对?并且您可以确定RSAPublicKey再次使用RSAPublicKeySpec可以与结合使用KeyFactory.getInstance("RSA")

这些是ASN.1编码的结构。一种称为SubjectPublicKeyInfo结构,为X.509(即证书)指定,为实际的公共密钥指定PKCS#1。另一个是PKCS#8编码的私钥(您正在查看该私钥正在被加密的内部结构),它也依赖PKCS#1来获得实际的私钥。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章