Como gerar um par de chaves pública e privada no ECDSA

No Stark Bank, usamos o ECDSA com a curva secp256k1 para criar e validar assinaturas digitais, a mesma curva utilizada por Bitcoin, Ethereum e outras criptomoedas.

Recomendamos qualquer um dos seguintes métodos para criar um par de chaves pública e privada no ECDSA.

Lembre-se: sua chave privada nunca deve ser compartilhada com ninguém, nem mesmo conosco!

Solução 1: Usando OpenSSL

No Mac (OSX) e na maioria das distribuições de Linux, o OpenSSL já vem instalado na máquina. Usuários de Windows precisam instalar o OpenSSL para utilizarem essa solução. Recomendamos a versão que vem junto com o Git para Windows.

Para criar seu par de chaves, abra o terminal (Git Bash no Windows) e insira os comandos abaixo:

    openssl ecparam -name secp256k1 -genkey -out privateKey.pem
    openssl ec -in privateKey.pem -pubout -out publicKey.pem
        

Solução 2: Usando nossos SDKs

Caso você use uma das linguagens de programação abaixo, basta instalar o nosso SDK e rodar os comandos abaixo para gerar o seu par de chaves:

Python

    import starkbank

    private_key, public_key = starkbank.key.create("sample/destination/path")

    print(private_key)
    print(public_key)

Javascript

    const starkbank = require('starkbank')

    let privateKey, publicKey

    [privateKey, publicKey] = starkbank.key.create("sample/destination/path")

    console.log(privateKey)
    console.log(publicKey)

PHP

    use StarkBankKey;

    list($privateKey, $publicKey) = Key::create("sample/destination/path");

    print_r($privateKey)
    print_r($publicKey)

Java

    import com.starkbank.*;

    Key key = Key.create("sample/destination/path");

    String privatePem = key.privatePem;
    String publicPem = key.publicPem;

    System.out.print(privatePem);
    System.out.print(publicPem);

Ruby

    require('starkbank')

    private_key, public_key = StarkBank::Key.create("sample/destination/path")

    puts private_key
    puts public_key

Elixir

    {private_key, public_key} = StarkBank.Key.create("sample/destination/path")

    IO.puts(private_key)
    IO.puts(public_key)

C#

    (string privateKey, string publicKey) = StarkBank.Key.Create("sample/destination/path");

    Console.WriteLine(privateKey);
    Console.WriteLine(publicKey);

Go

    package main

    import (
        "fmt"
        "github.com/starkinfra/core-go/starkcore/key"
    )

    func main() {

        privateKey, publicKey := key.Create("sample/destination/path")

        fmt.Println(privateKey)
        fmt.Println(publicKey)
    }

Clojure

    (ns my-lib.core
    (:use starkbank.core))

    (def key-pair (starkbank.key/create "/sample/destination/path"))
    (println (:private-pem key-pair))
    (println (:public-pem key-pair))

Curl

Solução 3: Usando o seu navegador

Caso você não tenha conseguido utilizar nenhum dos métodos anteriores, podemos usar nossa biblioteca de ECDSA Node para gerar localmente o par de chaves no seu navegador. Para gerar suas chaves, clique no botão abaixo:

GERAR PAR DE CHAVES