2017-09-04 51 views
0

使用openssl生成publicprivate密钥。但是,代码会生成非常长的密钥,并且这些密钥不能用于对API进行身份验证。使用Open SSL生成公钥和私钥

$config = array(
    "digest_alg" => "sha512", 
    "private_key_bits" => 4096, 
    "private_key_type" => OPENSSL_KEYTYPE_RSA, 
); 

$res = openssl_pkey_new($config); 

openssl_pkey_export($res, $privKey); 

print_r($privKey); 

$pubKey = openssl_pkey_get_details($res); 
$pubKey = $pubKey["key"]; 

print_r($pubKey); 

有没有办法生成60个字符的私钥?还有一个20字符的公钥,这种技术是独一无二的?

+0

是关于OpenSSL,*认证API *(不管它的意思)还是生成唯一键的问题? –

+0

@AlexBlex使用OpenSSL生成独特的公钥和私钥 – Borsn

+0

然后就没有办法了。 –

回答

1

不适用于OpenSSL中的RSA。即使最低位数为32,也会产生一个64字节的私钥。短钥匙的安全性也不好,应该避免。

也许你可以使用一个长安全密钥来实现一个令牌请求调用,然后使用较小的令牌来进一步请求。这限制了整体的数据开销。这需要更多的编码才能完成,但可能还需要一段时间。