Skip to main content

Criptografando segredos para a API REST

Para criar ou atualizar um segredo com a API REST, você deve criptografar o valor desse segredo.

Sobre a criptografia de segredos

Vários pontos de extremidade de API REST permitem criar segredos na GitHub. Para usar esses pontos de extremidade, você deve criptografar o valor do segredo usando o libsodium. Para saber mais, confira a documentação do lidsodium.

Para criptografar um segredo, você precisa de uma chave pública codificada em Base64. É possível obter uma chave pública da API REST. Para determinar qual ponto de extremidade usar para obter a chave pública, consulte a documentação do parâmetro encrypted_value no ponto de extremidade que você usará para criar um segredo.

Exemplo de criptografia de um segredo usando Node.js

Se você estiver usando o Node.js, pode criptografar seu segredo usando a biblioteca libsodium-wrappers. Para obter mais informações, consulte libsodium-wrappers.

No exemplo a seguir, substitua YOUR_SECRET pelo valor de texto sem formatação que você deseja criptografar. Substitua YOUR_BASE64_KEY pela chave pública codificada em Base64. A documentação do ponto de extremidade que você usará para criar um segredo informará qual ponto de extremidade é possível usar para obter a chave pública. ORIGINAL não é um espaço reservado; é um parâmetro para a biblioteca libsodium-wrappers.

JavaScript
const sodium = require('libsodium-wrappers')

const secret = 'YOUR_SECRET'
const key = 'YOUR_BASE64_KEY'

//Check if libsodium is ready and then proceed.
sodium.ready.then(() => {
  // Convert the secret and key to a Uint8Array.
  let binkey = sodium.from_base64(key, sodium.base64_variants.ORIGINAL)
  let binsec = sodium.from_string(secret)

  // Encrypt the secret using libsodium
  let encBytes = sodium.crypto_box_seal(binsec, binkey)

  // Convert the encrypted Uint8Array to Base64
  let output = sodium.to_base64(encBytes, sodium.base64_variants.ORIGINAL)

  // Print the output
  console.log(output)
});

Exemplo de criptografia de um segredo usando Python

Se você está usando o Python 3, pode criptografar seu segredo usando a biblioteca PyNaCl. Para obter mais informações, consulte PyNaCl.

No exemplo a seguir, substitua YOUR_SECRET pelo valor de texto sem formatação que você deseja criptografar. Substitua YOUR_BASE64_KEY pela chave pública codificada em Base64. A documentação do ponto de extremidade que você usará para criar um segredo informará qual ponto de extremidade é possível usar para obter a chave pública.

Python
from base64 import b64encode
from nacl import encoding, public

def encrypt(public_key: str, secret_value: str) -> str:
  """Encrypt a Unicode string using the public key."""
  public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder())
  sealed_box = public.SealedBox(public_key)
  encrypted = sealed_box.encrypt(secret_value.encode("utf-8"))
  return b64encode(encrypted).decode("utf-8")

encrypt("YOUR_BASE64_KEY", "YOUR_SECRET")

Exemplo de criptografia de um segredo usando C#

Se você está usando o C#, pode criptografar seu segredo usando o pacote Sodium.Core. Para obter mais informações, confira Sodium.Core.

No exemplo a seguir, substitua YOUR_SECRET pelo valor de texto sem formatação que você deseja criptografar. Substitua YOUR_BASE64_KEY pela chave pública codificada em Base64. A documentação do ponto de extremidade que você usará para criar um segredo informará qual ponto de extremidade é possível usar para obter a chave pública.

C#
var secretValue = System.Text.Encoding.UTF8.GetBytes("YOUR_SECRET");
var publicKey = Convert.FromBase64String("YOUR_BASE64_KEY");

var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);

Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));

Exemplo de criptografia de um segredo usando Ruby

Se você esta usando o Ruby, pode criptografar seu segredo usando a joia RbNaCl. Para obter mais informações, consulte RbNaCl.

No exemplo a seguir, substitua YOUR_SECRET pelo valor de texto sem formatação que você deseja criptografar. Substitua YOUR_BASE64_KEY pela chave pública codificada em Base64. A documentação do ponto de extremidade que você usará para criar um segredo informará qual ponto de extremidade é possível usar para obter a chave pública.

Ruby
require "rbnacl"
require "base64"

key = Base64.decode64("YOUR_BASE64_KEY")
public_key = RbNaCl::PublicKey.new(key)

box = RbNaCl::Boxes::Sealed.from_public_key(public_key)
encrypted_secret = box.encrypt("YOUR_SECRET")

# Print the base64 encoded secret
puts Base64.strict_encode64(encrypted_secret)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy