【问题标题】:getting public key format in javascript在javascript中获取公钥格式
【发布时间】:2016-09-10 20:56:48
【问题描述】:
我想使用 javascript 检测和验证公钥的(格式)
你有什么图书馆可以帮助我吗?
基本上我希望用户将他的密钥粘贴到 textarea 中,然后我想解析它以验证这实际上是 rsa\ssh\etc。密钥,获取密钥名称(描述)、位大小和任何其他相关信息。
谢谢。
【问题讨论】:
标签:
javascript
public-key-encryption
public-key
【解决方案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'