在javascript中获取公钥格式

时间:2016-05-14 19:00:02

标签: javascript public-key-encryption public-key

我想使用javascript检测并验证公钥的格式 你的任何图书馆都可以帮助我吗? 基本上我希望用户将他的密钥粘贴到textarea然后我想解析它以验证这实际上是rsa \ ssh \ etc。键,获取密钥名称(描述),位大小和任何其他相关信息。 谢谢。

1 个答案:

答案 0 :(得分: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'