2017-09-04 173 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字節的私鑰。短鑰匙的安全性也不好,應該避免。

也許你可以使用一個長安全密鑰來實現一個令牌請求調用,然後使用較小的令牌來進一步請求。這限制了整體的數據開銷。這需要更多的編碼才能完成,但可能還需要一段時間。