IT Knowledge Base

~ Without sacrifice, there can be no victory ~

發佈日期:

分類:

, , ,

如何解決XAMPP內『Call to undefined function sodium_crypto_secretbox_keygen()』錯誤

01. 前幾天看到PHP有另一個加密/解密函數『Sodium』,本著測試目的,就把測試程式碼,複製到XAMPP伺服器內測試一下。

<?php
$key = sodium_crypto_secretbox_keygen();
$nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);
$ciphertext = sodium_crypto_secretbox('Your message', $nonce, $key);
$plaintext = sodium_crypto_secretbox_open($ciphertext, $nonce, $key);
if ($plaintext === false) {
throw new Exception("Bad ciphertext");
}
echo $plaintext;
?>

02. 明明Sodium的extension已經啟用,但運行時卻出現『Fatal error: Uncaught Error: Call to undefined function sodium_crypto_secretbox_keygen() in xxx Stack trace: #0 {main} thrown in xxx on line 3』錯誤。

03. 玩了幾天,連『Copilot』也出動了。原來只是那些年的解決方法,只是自己已經忘記了。

04. 只要將『C:\xampp\php\libsodium.dll』檔案(假設XAMPP預設安裝在C:\XAMPP資料夾內),複製一份到『C:\xampp\apache\bin』資料夾內,再重新啟動Apache一次,PHP Sodium便能成功使用。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *