不要回答了,我自己剛問完就發(fā)現(xiàn)問題了,在java代碼里生成公鑰時(shí),在填寫公鑰指數(shù)時(shí),應(yīng)該填寫十六進(jìn)制,我填成十進(jìn)制了。。。。最近一直睡眠不足,這種小問題,半天才發(fā)現(xiàn)
OS: Mac OS 10.12.6
OpenSSL version: 0.9.8zh 14 Jan 2016
Java: jdk1.8.0_131.jdk
1.我使用“genrsa -out key.pem 1024”指令,生成出一把普通的RSA密鑰對(duì),長度為1024;
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDBLACwdLLJUaB+DtAQS1khxmeoi4wg7LXg7oFW4XUCDZDa4wGS
xwPXyscYnPdc3AnTfUjmFrQnX2AOuTKC1l8VSZhFJsuKpILGQB0meForfJyTsv30
TvR/HKDzh4Fk2kN/QpxU9wxirMsBAoAHP4v73rQK+VqtStjLyMr/A+D39wIDAQAB
AoGAA3FVUc/Cn/PkeFqrOp8dJ4zxq/9QsAWH+EpH49SA0ViMjFofXQ5O8zmZ8sZZ
Yj5Jros9EVy2OT1p6NlEHTDU4PRPue8pcZCNpQVyOiAOpuQhkrQbfJT27LbjyWSO
e4vQ2bmpMrmrksjkERaC1I8a1D+ArtcWEG4FFK5nePHWqAECQQDoM2Qe91u9pMut
ZBPdt6WtW5k6nlCj7d+VVcbrFMP4zR4rs70w/RoZlsvB5ySFzGYSCVoaoJmc/0wn
aNB5gdO3AkEA1PiNHCEstfHMToEOmLYKdbo4WTVn8+axirDPmrK+L2cjK08VZD2m
SA7zz4Ts0m4xV9wmZmtHYv97XBbtYGB9wQJAOFlAUsN0X/E9/DXtHEEU050G8lK4
/w8a0wKd4y6G4DnmuHRF1T2Wt98AU23kTxPrMTVTyGJw5MiPkoC9Fr+KwQJAcjLN
R9YqKW39BeOCNjT3KuWuLXfLxCdh8GKbD/LktHpzi1eeut+r+Fu8NPysGLJp1xj/
pk/EObuRJHJO2y0igQJBAKiLNfAKXK3fhVtlrHU8dohq1VAD3IrXXm/2QR42fn9g
VzNu21R53cqioa1Sna0+F3oOLfjZN3557ckOv0cZeL0=
-----END RSA PRIVATE KEY-----
2.再用“rsa -in key.pem -text -out key.txt”,來獲取實(shí)際數(shù)據(jù);
Private-Key: (1024 bit)
modulus:
00:c1:2c:00:b0:74:b2:c9:51:a0:7e:0e:d0:10:4b:
59:21:c6:67:a8:8b:8c:20:ec:b5:e0:ee:81:56:e1:
75:02:0d:90:da:e3:01:92:c7:03:d7:ca:c7:18:9c:
f7:5c:dc:09:d3:7d:48:e6:16:b4:27:5f:60:0e:b9:
32:82:d6:5f:15:49:98:45:26:cb:8a:a4:82:c6:40:
1d:26:78:5a:2b:7c:9c:93:b2:fd:f4:4e:f4:7f:1c:
a0:f3:87:81:64:da:43:7f:42:9c:54:f7:0c:62:ac:
cb:01:02:80:07:3f:8b:fb:de:b4:0a:f9:5a:ad:4a:
d8:cb:c8:ca:ff:03:e0:f7:f7
publicExponent: 65537 (0x10001)
privateExponent:
03:71:55:51:cf:c2:9f:f3:e4:78:5a:ab:3a:9f:1d:
27:8c:f1:ab:ff:50:b0:05:87:f8:4a:47:e3:d4:80:
d1:58:8c:8c:5a:1f:5d:0e:4e:f3:39:99:f2:c6:59:
62:3e:49:ae:8b:3d:11:5c:b6:39:3d:69:e8:d9:44:
1d:30:d4:e0:f4:4f:b9:ef:29:71:90:8d:a5:05:72:
3a:20:0e:a6:e4:21:92:b4:1b:7c:94:f6:ec:b6:e3:
c9:64:8e:7b:8b:d0:d9:b9:a9:32:b9:ab:92:c8:e4:
11:16:82:d4:8f:1a:d4:3f:80:ae:d7:16:10:6e:05:
14:ae:67:78:f1:d6:a8:01
3.也就是說:
N: 00C12C00B074B2C951A07E0ED0104B5921C667A88B8C20ECB5E0EE8156E175020D90DAE30192C703D7CAC7189CF75CDC09D37D48E616B4275F600EB93282D65F1549984526CB8AA482C6401D26785A2B7C9C93B2FDF44EF47F1CA0F3878164DA437F429C54F70C62ACCB010280073F8BFBDEB40AF95AAD4AD8CBC8CAFF03E0F7F7
E: 65537
D: 03715551CFC29FF3E4785AAB3A9F1D278CF1ABFF50B00587F84A47E3D480D1588C8C5A1F5D0E4EF33999F2C659623E49AE8B3D115CB6393D69E8D9441D30D4E0F44FB9EF2971908DA505723A200EA6E42192B41B7C94F6ECB6E3C9648E7B8BD0D9B9A932B9AB92C8E4111682D48F1AD43F80AED716106E0514AE6778F1D6A801
4.在Java代碼中,我先通過上面的Modulus和Exponent來生成RSA公私鑰。然后使用RSA、ECB、OAEPwithSHA256andMGF1Padding的方式對(duì)16字節(jié)的數(shù)據(jù)進(jìn)行加密。最后對(duì)結(jié)果再用相同的方式解密??墒墙饷軙r(shí)報(bào)出異常,異常內(nèi)容:javax.crypto.BadPaddingException: Decryption error。
4-1.我自己用其他軟件來生成密鑰對(duì),帶入Java代碼中運(yùn)算,就沒有出現(xiàn)這個(gè)問題,原始數(shù)據(jù)和加密解密后數(shù)據(jù)也匹配。
4-2.我在Java代碼中,使用KeyPair keyPair = keyPairGenerator.generateKeyPair()這個(gè)方式,通過Java來生成密鑰對(duì),再做運(yùn)算,也不會(huì)出錯(cuò),原始數(shù)據(jù)和加密解密后數(shù)據(jù)也匹配。
4-3.我又在Openssl中生成2048的密鑰,還是出問題,報(bào)同樣的異常。
麻煩有經(jīng)驗(yàn)的人能幫我分析一下問題大概有可能出在哪,多謝。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。