生成公私钥实践:
生成私钥,这里以椭圆曲线secp256k1为例:
openssl ecparam -name secp256k1 -genkey -out secp256k1-priv.pem #带EC曲线参数
openssl ecparam -name secp256k1 -genkey -noout -out secp256k1-priv.pem #不带EC曲线参数
查看私钥文件中的内容,包括私钥和公钥的hex编码形式:
openssl pkey -in secp256k1-priv.pem -text
根据私钥生成对应公钥:
openssl ec -in secp256k1-priv.pem -pubout -out secp256k1-pub.pem
私钥文件通常有两种格式pkcs#1和pkcs#8,上面openssl生成的默认为pkcs#1格式,
pkcs#1格式包括如下头部和尾部:
-----BEGIN EC PRIVATE KEY-----
BASE64 ENCODED DATA
-----END EC PRIVATE KEY-----
pkcs#8格式包括如下头部和尾部
-----BEGIN PRIVATE KEY-----
BASE64 ENCODED DATA
-----END PRIVATE KEY-----
如果要转换为pkcs#8格式:
openssl pkcs8 -topk8 -nocrypt -in secp256k1-priv.pem -out secp256k1-priv-pk8.pem