2016-05-14 31 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'