Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 生成256bit ECDSA私钥_Php_Private Key_Ecdsa - Fatal编程技术网

Php 生成256bit ECDSA私钥

Php 生成256bit ECDSA私钥,php,private-key,ecdsa,Php,Private Key,Ecdsa,我想用php制作一个带有secp256k1曲线的256位ECDSA私钥 我用了这个片段: $pk_Generate = openssl_pkey_new(array( 'private_key_bits' => 256, 'private_key_type' => OPENSSL_KEYTYPE_EC, 'curve_name' => 'secp256k1' )); while ($msg = openssl_error_string()) e

我想用php制作一个带有
secp256k1
曲线的256位
ECDSA
私钥

我用了这个片段:

$pk_Generate = openssl_pkey_new(array(
    'private_key_bits' => 256,
    'private_key_type' => OPENSSL_KEYTYPE_EC,
    'curve_name' => 'secp256k1'
));

while ($msg = openssl_error_string())
    echo $msg . "<br />\n";

openssl_pkey_export($pk_Generate, $pk_Generate_Private);
var_dump($pk_Generate_Private); // show me NULL
另外,如果这段代码工作正常,它会以
PEM
格式向我显示私钥,但我希望它是十六进制字符串格式

请引导我。

试试这个

$config = [
    "config" => getenv('OPENSSL_CONF'),
    'private_key_type' => OPENSSL_KEYTYPE_EC,
    'curve_name' => 'secp256k1'
];
$res = openssl_pkey_new($config);
if (!$res) {
    echo 'ERROR: Fail to generate private key. -> ' . openssl_error_string();
    exit;
}
// Generate Private Key
openssl_pkey_export($res, $priv_key, NULL, $config);
// Get The Public Key
$key_detail = openssl_pkey_get_details($res);
$pub_key = $key_detail["key"];

echo "priv_key:<br>".$priv_key;
echo "<br><br>pub_key:<br>".$pub_key;
$config=[
“config”=>getenv('OPENSSL_CONF'),
“私钥类型”=>OPENSSL密钥类型,
“曲线名称”=>“secp256k1”
];
$res=openssl\u pkey\u new($config);
如果(!$res){
echo“错误:无法生成私钥。->”。openssl_错误_字符串();
出口
}
//生成私钥
openssl_pkey_导出($res,$priv_key,NULL,$config);
//获取公钥
$key\u detail=openssl\u pkey\u get\u details($res);
$pub_key=$key_detail[“key”];
回显“priv_key:
”$priv_key; 回声“

发布密钥:
”$pub\u密钥;
$config = [
    "config" => getenv('OPENSSL_CONF'),
    'private_key_type' => OPENSSL_KEYTYPE_EC,
    'curve_name' => 'secp256k1'
];
$res = openssl_pkey_new($config);
if (!$res) {
    echo 'ERROR: Fail to generate private key. -> ' . openssl_error_string();
    exit;
}
// Generate Private Key
openssl_pkey_export($res, $priv_key, NULL, $config);
// Get The Public Key
$key_detail = openssl_pkey_get_details($res);
$pub_key = $key_detail["key"];

echo "priv_key:<br>".$priv_key;
echo "<br><br>pub_key:<br>".$pub_key;