雖然EOS的密鑰算法相似於比特幣,但作了一些調整,定義了本身的格式。開發包EosTool包含了EOS離線密鑰生成模塊,能夠不鏈接任何節點實現離線生成EOS密鑰。本文將給出EOS離線密鑰生成的PHP代碼示例。php
若是要學習EOS應用開發,能夠訪問這個 【EOS智能合約與DApp開發教程】,教程內容涵蓋EOS工具鏈、帳戶與錢包、代幣發行、智能合約開發、部署與交互等核心知識點,最後綜合運用各知識點完成一個便籤DApp的開發。算法
使用PrivateKey類的靜態方法new()
生成隨機私鑰。例如:工具
use EosTool\Crypto\PrivateKey; $prv = PrivateKey::new(); echo $prv->toEos() . PHP_EOL; //相似:5Hu6nxM6s6UQ3nYkr1s1GKA17zPqpceUuWxH3JBwK8ZorMSRqGi
toEos()
方法用來將私鑰對象轉換爲EOS的自定義格式。學習
從私鑰能夠推導出公鑰,例如:code
$pub = $prv->getPublicKey(); echo $pub->toEos() . PHP_EOL; //相似:EOS6wQ6t3n148GfzLzgxq7cC8ARDKxeaB3hQXdXn7oZYdwEyAXiSv
一樣,使用公鑰對象的toEos()
方法將公鑰轉換爲EOS的自定義格式。對象
能夠將一個EOS格式的私鑰轉化爲EosTool的PrivateKey對象,例如,下面的代碼將指定的EOS私鑰導入,並顯示其對應的EOS公鑰:教程
$prv = PrivateKey::fromEos('5Hu6nxM6s6UQ3nYkr1s1GKA17zPqpceUuWxH3JBwK8ZorMSRqGi'); echo $prv->getPublicKey()->toEos() . PHP_EOL;
PrivateKey的sign()
方法支持普通簽名和EOS節點要求的權威簽名。例以下面的代碼返回一個 普通簽名:開發
$hex = '1234567890abcdef...'; $signature = $prv->sign($hex);
經過傳入額外的參數true
來得到指定數據的權威簽名:部署
$hex = '1234567890abcdef...'; $signature = $prv->sign($hex,true);