Informationen zu verschlüsselten Geheimnissen
Mit mehreren REST-API-Endpunkten können Sie geheime Schlüssel zu GitHub erstellen. Um diese Endpunkte zu verwenden, müssen Sie den geheimen Wert mithilfe von libsodium verschlüsseln. Weitere Informationen finden Sie in der Spark NLP-Dokumentation.
Um einen geheimen Schlüssel zu verschlüsseln, benötigen Sie einen base64-codierten öffentlichen Schlüssel. Sie können einen öffentlichen Schlüssel aus der REST-API abrufen. Um zu bestimmen, welcher Endpunkt zum Abrufen des öffentlichen Schlüssels verwendet werden soll, schauen Sie sich die Dokumentation für den encrypted_value Parameter im Endpunkt an, den Sie zum Erstellen eines geheimen Schlüssels verwenden möchten.
Beispiel zum Verschlüsseln eines geheimen Schlüssels mithilfe von Node.js
Wenn Sie Node.js verwenden, können Sie Ihr Geheimnis mithilfe der Bibliothek libsodium-wrappers verschlüsseln. Weitere Informationen finden Sie unter libsodium-wrapper.
Ersetzen YOUR_SECRET Sie im folgenden Beispiel den Nur-Text-Wert, den Sie verschlüsseln möchten. Ersetzen Sie den YOUR_BASE64_KEY öffentlichen Base64-Codierten Schlüssel. Die Dokumentation für den Endpunkt, den Sie zum Erstellen eines geheimen Schlüssels verwenden, teilt Ihnen mit, welchen Endpunkt Sie verwenden können, um den öffentlichen Schlüssel abzurufen. ORIGINAL ist kein Platzhalter; it is a parameter for the libsodium-wrappers library.
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)
});
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)
});
Beispiel zum Verschlüsseln eines geheimen Schlüssels mithilfe von Python
Wenn Sie Python 3 verwenden, können Sie Ihr Geheimnis mithilfe der PyNaCl-Bibliothek verschlüsseln. Weitere Informationen finden Sie unter PyNaCl.
Ersetzen YOUR_SECRET Sie im folgenden Beispiel den Nur-Text-Wert, den Sie verschlüsseln möchten. Ersetzen Sie den YOUR_BASE64_KEY öffentlichen Base64-Codierten Schlüssel. Die Dokumentation für den Endpunkt, den Sie zum Erstellen eines geheimen Schlüssels verwenden, teilt Ihnen mit, welchen Endpunkt Sie verwenden können, um den öffentlichen Schlüssel abzurufen.
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")
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")
Beispiel zum Verschlüsseln eines geheimen Schlüssels mit C#
Wenn Sie C# verwenden, können Sie Ihr Geheimnis mithilfe des Natrium.Core-Pakets verschlüsseln. Weitere Informationen finden Sie unter Natrium.Core.
Ersetzen YOUR_SECRET Sie im folgenden Beispiel den Nur-Text-Wert, den Sie verschlüsseln möchten. Ersetzen Sie den YOUR_BASE64_KEY öffentlichen Base64-Codierten Schlüssel. Die Dokumentation für den Endpunkt, den Sie zum Erstellen eines geheimen Schlüssels verwenden, teilt Ihnen mit, welchen Endpunkt Sie verwenden können, um den öffentlichen Schlüssel abzurufen.
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));
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));
Beispiel zum Verschlüsseln eines geheimen Schlüssels mithilfe von Ruby
Wenn Sie Ruby verwenden, können Sie Ihr Geheimnis mit dem RbNaCl-Juwel verschlüsseln. Weitere Informationen finden Sie unter RbNaCl.
Ersetzen YOUR_SECRET Sie im folgenden Beispiel den Nur-Text-Wert, den Sie verschlüsseln möchten. Ersetzen Sie den YOUR_BASE64_KEY öffentlichen Base64-Codierten Schlüssel. Die Dokumentation für den Endpunkt, den Sie zum Erstellen eines geheimen Schlüssels verwenden, teilt Ihnen mit, welchen Endpunkt Sie verwenden können, um den öffentlichen Schlüssel abzurufen.
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)
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)