2016-05-14 60 views
0

我想檢測和驗證(格式)的公鑰,使用javascript 是你的任何圖書館,可以幫助我嗎? 基本上我想要一個用戶將他的密鑰粘貼到textarea中,然後我想解析它來驗證這實際上是一個rsa \ ssh \ etc。密鑰,獲取密鑰名稱(描述),位大小和任何其他相關信息。 謝謝。在javascript中獲取公鑰格式

+0

沒有人有過處理過這個嗎?我是第一個? – phper

回答

1

你應該可以用正則表達式來做到這一點。 這個匹配openssl輸出的格式。

var re = new RegExp("^-----BEGIN CERTIFICATE-----\r?\n[A-Za-z0-9+\/=]{64}\r?\n[A-Za-z0-9+\/=]{64}\r?\n[A-Za-z0-9+\/=]{64}\r?\n[A-Za-z0-9+\/=]{64}\r?\n[A-Za-z0-9+\/=]{64}\r?\n[A-Za-z0-9+\/=]{64}\r?\n[A-Za-z0-9+\/=]{64}\r?\n[A-Za-z0-9+\/=]{64}\r?\n[A-Za-z0-9+\/=]{64}\r?\n[A-Za-z0-9+\/=]{64}\r?\n[A-Za-z0-9+\/=]{64}\r?\n[A-Za-z0-9+\/=]{64}\r?\n[A-Za-z0-9+\/=]{38}==\r?\n-----END CERTIFICATE-----\r?\n?$"); 

re.test("-----BEGIN CERTIFICATE-----\n"+ 
"MIICWDCCAcGgAwIBAgIJAPoiU8TwxKfZMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\n"+ 
"BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX\n"+ 
"aWRnaXRzIFB0eSBMdGQwHhcNMTYwOTIxMjI1NzAzWhcNMjEwOTIwMjI1NzAzWjBF\n"+ 
"MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50\n"+ 
"ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\n"+ 
"gQDKylIukm5ZNIFsFxqMNlqazn+bWlzSXnATvyu783KMTXGRMbKb8C+SVra3gofs\n"+ 
"0D7cgPPECMINFP0PEGBvN6iQXaJOL4YQUbl2FQOQEi6xOATytaWqaHy9DiZ8zeRs\n"+ 
"WhT/m+6fjefZD1FhBaIAPi2dy/TKSBo61SU9f2O0NyyIiQIDAQABo1AwTjAdBgNV\n"+ 
"HQ4EFgQUpyK5bWplT+owyTHUUD5FG5frc80wHwYDVR0jBBgwFoAUpyK5bWplT+ow\n"+ 
"yTHUUD5FG5frc80wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOBgQAupycX\n"+ 
"kF3RhL0bUmxbh1nZaZ0ZAuWh4A1pc5XjwSGYLhWMHpNmrIvGnlUuyQlyE6L45DR2\n"+ 
"JekCMC0TBK8mv2BpaUCcPA844LSix1lSoNvuGQ7GRuLvPDDY/v8I28mRLsLmqxg2\n"+ 
"uz3VNtJwu/igOCf4mDI9ZoQWPBRb+pqXJ42V8Q==\n"+ 
"-----END CERTIFICATE-----\n"); 

// outputs 'true'