2011-08-20 232 views
0

我需要使用PHP中的RSA加密一些數據。所有圖書館的周圍索要指數和模量,但我得到這樣如何從公鑰中找到模數和指數?

公鑰的公鑰:

-----BEGIN PUBLIC KEY----- 
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVnXLu0FM37CmUYjJuu4JaB6bo 
liJ1b5BybAVcqlfvUxjpU+VVhKnZNd4IU7S0ITRTAKvoFk68CiUmaRA9871mfxjp 
sX6YeNs913LyGwFw0bmno+1o6URBui2p3gHwGQL8R/jIl4NHC1TF47Q5Vj3RuraV 
Ky4YH6dp7YIJRaU7JQIDAQAB 
-----END PUBLIC KEY----- 

你如何檢索該公用指數和模量的一部分?

+0

這是[RSA:獲取指數和給定公鑰的模數]的近似重複值(http://stackoverflow.com/questions/3116907/rsa-get-exponent-and-modulus-given-a-public- key) –

+0

@consticuous接近,但不完全,因爲PHP可能有不同的機制來完成相同的工作。 –

+0

你試過什麼「所有圖書館」?對我而言,更自然的方法是接受PKCS#1.5格式的RSA密鑰(並且您所擁有的是PKCS#1.5的包裝和base64編碼形式,因爲它看起來似乎)。 –

回答

2

你是怎麼得到這個鑰匙的?

openssl asn1parse -inform PEM -in pubkey.txt -i 
    0:d=0 hl=3 l= 159 cons: SEQUENCE 
    3:d=1 hl=2 l= 13 cons: SEQUENCE 
    5:d=2 hl=2 l= 9 prim: OBJECT   :rsaEncryption 
    16:d=2 hl=2 l= 0 prim: NULL 
    18:d=1 hl=3 l= 141 prim: BIT STRING 

據此,最後一個字節序列的長度應該是141,而整個密鑰只有119個字符長。

忽略BIT STRING應該有多長時間,目前,它甚至不符合任何標準格式。

相關問題