folm / folm-ecdsa
PHP库,允许从私钥生成FLM地址
Requires
- php: >=5.4.0
- ext-gmp: *
Requires (Dev)
- phpunit/phpunit: 4.1.*
README
警告
此软件提供的没有任何保证,使用风险自负。
需求
php 5.4.0 或更高版本。
php5-gmp 需要安装。
如果您想运行测试文件,需要在安装了libfolm的Unix系统下运行。
用法
安装
最佳方式是使用composer
composer require folm/folmecdsa
或者将以下代码片段添加到您的composer.json文件中
"folm/folmecdsa" : ">=1.3"
实例化
use FolmPHP\FolmECDSA\FolmECDSA; require_once("src/FolmPHP/FolmECDSA/FolmECDSA.php"); $folmECDSA = new FolmECDSA();
设置私钥
$folmECDSA->setPrivateKey($k);
私钥示例
4C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D 00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC
生成随机私钥
$folmECDSA->generateRandomPrivateKey($nonce);
nonce是可选的,通常nonce是从用户那里获得的随机数据的一部分。这可以是鼠标坐标。使用nonce会增加随机性,这意味着生成的私钥更强。
获取私钥
$folmECDSA->getPrivateKey();
返回私钥。
获取Wif
$folmECDSA->getWif();
以钱包导入格式返回私钥。
获取公钥
$folmECDSA->getPubKey();
返回压缩的公钥。如果y坐标是偶数,压缩的PubKey以0x02开头,如果y坐标是奇数,以0x03开头,接下来的32字节对应于x坐标。
示例:0226c50013603b085fbc26411d5d7e564b252d88964eedc4e01251d2d495e92c29
获取未压缩的公钥
$folmECDSA->getUncompressedPubKey();
返回未压缩的PubKey。未压缩的PubKey以0x04开头,接下来的32字节是x坐标,最后的32字节是y坐标。
示例:04c80e8af3f1b7816a18aa24f242fc0740e9c4027d67c76dacf4ce32d2e5aace241c426fd288a9976ca750f1b192d3acd89dfbeca07ef27f3e5eb5d482354c4249
获取公钥坐标
$folmECDSA->getPubKeyPoints();
返回包含公钥x和y坐标的数组
示例:Array ( [x] => a69243f3c4c047aba38d7ac3660317629c957ab1f89ea42343aee186538a34f8 [y] => b6d862f39819060378542a3bb43ff76b5d7bb23fc012f09c3cd2724bebe0b0bd )
获取地址
$folmECDSA->getAddress();
返回压缩的Folm地址。
获取未压缩的地址
$folmECDSA->getUncompressedAddress();
返回未压缩的Folm地址。
验证地址
$folmECDSA->validateAddress($address);
如果地址有效则返回true,否则返回false
验证Wif密钥
$folmECDSA->validateWifKey($wif);
如果WIF密钥有效则返回true,否则返回false
签名
签名消息
$folmECDSA->signMessage('message');
返回satoshi客户端标准签名消息。
验证消息
$folmECDSA->checkSignatureForRawMessage($signedMessage);
如果签名与地址匹配则返回true,否则返回false。
签名sha256哈希
$folmECDSA->signHash($hash);
返回DER编码的十六进制签名。
验证签名
$folmECDSA->checkDerSignature($pubKey, $signature, $hash)
如果签名与公钥匹配则返回true,否则返回false。
示例
许可证
这是一个免费且不受限制的软件,已发布到公共领域。
任何人都可以免费复制、修改、发布、使用、编译、销售或分发此软件,无论是源代码形式还是编译的二进制形式,用于任何目的,无论是商业目的还是非商业目的,以及任何方式。
在承认版权法的司法管辖区,此软件的作者或作者将此软件的任何和所有版权利益捐赠给公共领域。我们做出此捐赠是为了公众的利益,并损害我们的继承人后继者的利益。我们意图此捐赠是放弃在版权法下对此软件的现有和未来所有权利的明确行为。
本软件按“原样”提供,不提供任何形式的保证,无论是明示的、暗示的,包括但不限于对适销性、适用于特定目的和非侵权的保证。在任何情况下,作者不对任何索赔、损害或其他责任负责,无论这些责任是源于合同行为、侵权或其他,是否与软件有关,或与使用或处理软件有关。
如需更多信息,请参阅http://unlicense.org/