2012-03-13 11 views
1
In our project we need to calculate the public key of a certificate and sha1 hash of public key. I tried to do this using java API "X509Certificate.getPublicKey()" and then calculated the hexadecimal representation of it. But the value obtained through this process does not match with the value that windows shows for "Public Key" when certificate is opened by double clicking it. 

により算出した公開鍵と一致JAVAにおける証明書の公開鍵を計算する方法を、私は(PEM形式)証明書を、以下の公開鍵を計算例としてWindows

-----BEGIN CERTIFICATE----- 
MIICxDCCAi2gAwIBAgIBBjANBgkqhkiG9w0BAQQFADCBujELMAkGA1UEBhMCSU4x 
EDAOBgNVBAgMB0hhcnlhbmExEDAOBgNVBAcMB0d1cmdhb24xDzANBgNVBAoMBk1j 
QWZlZTEbMBkGA1UECwwSQXBwbGljYXRpb25Db250cm9sMTIwMAYDVQQDDClNY0Fm 
ZWVBcHBsaWNhdGlvbkNvbnRyb2xUZXN0Q2VydEF1dGhvcml0eTElMCMGCSqGSIb3 
DQEJARYWYXBwX2NvbnRyb2xAbWNhZmVlLmNvbTAeFw0xMjAzMTMxMDM4MDZaFw0x 
MzA3MjYxMDM4MDZaMIGUMQswCQYDVQQGEwJJTjEQMA4GA1UECBMHSGFyeWFuYTEQ 
MA4GA1UEBxMHR3VyZ2FvbjEUMBIGA1UEChMLdGVzdENvbXBhbnkxEDAOBgNVBAsT 
B3Rlc3RPcmcxETAPBgNVBAMTCHRlc3ROYW1lMSYwJAYJKoZIhvcNAQkBFhd0ZXN0 
TmFtZUB0ZXN0RG9tYWluLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA 
qjRldfjFgIqMrXiNcKYA31bX+nLsw3Q0CeBiWq3oDh3sz/gk7dz+9yLRub+gnosU 
Sgj0td5yolhmCKPq9YZe5q/YLm9vsbU6WJr4VU3Uwi4uHTPZxojjUjx9esqTS1uh 
AQJhT1BxOLJ+HNb/VqwZ66SB7mPhK2BTT7Kym5zCApsCAwEAATANBgkqhkiG9w0B 
AQQFAAOBgQB7yiAwtYiB05lJf+kUCgOmfUx/18ZJPB1Am+fIr+aMo2Djgv7bLPG5 
vesq0t1opBJIS9LqswW8Bf3IGdhc+33+LYRVxUB8mLHZ2KyCqfuuT7PdHHsiyNDg 
uMdO+equDFUsTMv0y6KyzCf89ZPjGhS4O09zVyR/KtZzSE6dyvyBNg== 
-----END CERTIFICATE----- 

JavaのAPIにより算出した公開鍵の16進表現は 30819f300d06092a864886f70d010101050003818d0030818902818100aa346575f8c5808a8cad788d70a600df56d7fa72ecc3743409e0625aade80e1deccff824eddcfef722d1b9bfa09e8b144a08f4b5de72a2586608a3eaf5865ee6afd82e6f6fb1b53a589af8554dd4c22e2e1d33d9c688e3523c7d7aca934b5ba10102614f507138b27e1cd6ff56ac19eba481ee63e12b60534fb2b29b9cc2029b0203です一方、公開鍵の16進表現に

010001(私たちは詳細タブの公開キーの値が存在する証明書をダブルクリックしたときに)だから、30818902818100aa346575f8c5808a8cad788d70a600df56d7fa72ecc3743409e0625aade80e1deccff824eddcfef722d1b9bfa09e8b144a08f4b5de72a2586608a3eaf5865ee6afd82e6f6fb1b53a589af8554dd4c22e2e1d33d9c688e3523c7d7aca934b5ba10102614f507138b27e1cd6ff56ac19eba481ee63e12b60534fb2b29b9cc2029b0203010001

に従っているウィンドウで示したように、公開鍵Java APIとウィンドウによって計算されたものは異なっています。私が見てきたことは、ウィンドウで公開された公開鍵は、java APIの公開鍵で45番目の文字からの値と同じであるということです。

窓がどのように証明書の公開鍵を計算するのか理解してください。同じメカニズムを使用することができます。

答えて

関連する問題