生成公私鑰實踐:
生成私鑰,這里以橢圓曲線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