SSH-Fingerabdruck als Hexadezimalwert oder Base64 formatieren
Ein SSH-Fingerabdruck ist eine kompakte Darstellung von Hash-Bytes, mit der Sie einen öffentlichen Schlüssel mit einem vertrauenswürdigen Wert vergleichen können.
Im Browser ausführen – kostenlos
Dieses Werkzeug übernimmt die bereits berechneten Bytes und gibt sie einheitlich als kleingeschriebenen, durch Doppelpunkte getrennten Hexadezimalwert oder als Base64 ohne Padding aus. Es analysiert keine Schlüssel, wählt keinen Hash-Algorithmus und berechnet keinen Digest. Durch die Trennung von Berechnung und Darstellung erhalten Skripte, Verwaltungswerkzeuge, Dokumentationen und Tests exakt die benötigte Schreibweise, ohne die ursprünglichen Bytes zu verändern.
Beginnen Sie mit dem rohen Digest, nicht mit einer Schlüsseldatei
Diese Funktion erwartet die Bytes eines Hashes, der bereits aus einem öffentlichen SSH-Schlüssel berechnet wurde. Geben Sie die Bytes in ihrer ursprünglichen Reihenfolge als ganze Zahlen zwischen 0 und 255 an. Ein Digest, der mit 222, 173, 190 und 239 beginnt, startet in der Hexadezimaldarstellung beispielsweise mit <code>de:ad:be:ef</code>. Eine OpenSSH-Schlüsselzeile, ein PEM-Block, ein Zertifikat oder Text, der lediglich wie ein Digest aussieht, wird bewusst nicht akzeptiert. Analyse und Hash-Berechnung müssen vorher erfolgen. Diese Trennung ist wichtig, weil sich aus einer beliebigen Zeichenfolge weder die Schlüsselkodierung noch der verwendete Algorithmus zuverlässig ableiten lassen. Zugleich wird das Testen einfach: Dieselbe Bytefolge erzeugt immer dieselben Zeichen. Bewahren Sie jedes Byte einschließlich führender Nullbytes, denn eine Entfernung verändert sowohl die Hexadezimal- als auch die Base64-Darstellung. Leere Arrays und Eingaben mit mehr als 128 Bytes werden abgelehnt, damit nutzlose oder versehentlich übergroße Daten nicht als gültiger Fingerabdruck erscheinen.
Wählen Sie die vom Zielsystem erwartete Darstellung
Wählen Sie <code>hex-colon</code>, wenn ein Werkzeug, Inventar oder Ablauf zwei kleingeschriebene Hexadezimalziffern je Byte erwartet, die durch Doppelpunkte getrennt sind. Jedes Byte behält seine volle Breite: Null erscheint als <code>00</code>, fünfzehn als <code>0f</code> und 255 als <code>ff</code>. Verwenden Sie <code>base64</code>, wenn das Ziel das kompakte Alphabet moderner SSH-Fingerabdrücke erwartet. Das Base64-Ergebnis enthält keine abschließenden Gleichheitszeichen als Padding, wie es bei angezeigten SSH-Fingerabdrücken üblich ist. Beide Optionen ändern ausschließlich die Darstellung; sie verändern, drehen, kürzen oder hashen die Bytes niemals erneut. Die Antwort enthält <code>fingerprint</code> und <code>format</code>, damit nachgelagerte Systeme Wert und Schreibweise gemeinsam speichern können. Formatnamen werden streng geprüft: Tippfehler, unbekannte Bezeichnungen oder abweichende Großschreibung führen zu einem Eingabefehler, statt unbemerkt einen plausiblen, aber falschen Standard zu wählen.
Vergleichen Sie Fingerabdrücke sicher und beachten Sie die Grenze
Verwenden Sie den formatierten Wert erst, wenn Sie wissen, wie der ursprüngliche Digest entstanden ist. Eine Übereinstimmung ist nur aussagekräftig, wenn beide Seiten denselben Algorithmus auf dieselben kanonischen Bytes des öffentlichen Schlüssels angewendet haben. Die Formatierung beweist diese Voraussetzungen nicht, stärkt den Digest nicht und authentifiziert keinen Host. Notieren Sie den Algorithmus separat, falls das umgebende Protokoll ihn nicht nennt. Für automatisierte Vergleiche sollten Sie beide Werte aus ihren Bytes normalisieren oder ein ausdrückliches Format verlangen, statt anhand der Zeichensetzung zu raten. Die Funktion liefert stabile Ergebnisse für Terminalmeldungen, Bereitstellungsberichte, Inventare, Freigabemasken und Regressionstests. Sie greift nicht auf das Netzwerk zu und speichert keine Schlüssel oder Fingerabdrücke. Die Browserversion läuft lokal; API-Automatisierung kostet $0.002 pro Anfrage. Ungültige Bytes und Formate schlagen eindeutig fehl. Stoppen Sie bei einer Abweichung und prüfen Sie die Quelle über einen vertrauenswürdigen Kanal.
Anwendungsfälle
Host-Bestätigung vorbereiten
Zeigen Sie den Digest genau in der Schreibweise an, die eine Person vor der Freigabe eines neuen SSH-Hosts sieht.
Inventarausgaben vereinheitlichen
Erzeugen Sie eine konsistente Darstellung, auch wenn vorgelagerte Scanner rohe Hash-Bytes liefern.
Deterministische Testdaten erstellen
Generieren Sie stabile erwartete Fingerabdrücke unabhängig von Betriebssystembefehlen und Regionseinstellungen.
Häufige Fragen
Berechnet dieses Werkzeug den Hash eines öffentlichen SSH-Schlüssels?
Nein. Es formatiert nur zuvor berechnete Hash-Bytes; Schlüsselanalyse und Digest-Berechnung müssen vorher erfolgen.
Was liefert das Base64-Format zurück?
Es verwendet das Base64-Standardalphabet ohne abschließende Gleichheitszeichen als Padding und erhält die Bytereihenfolge.
Bleiben führende Nullen in der Hexadezimaldarstellung erhalten?
Ja. Jedes Byte wird durch genau zwei kleingeschriebene Hexadezimalziffern dargestellt und durch Doppelpunkte getrennt.
Welche Bytewerte sind gültig?
Jeder Eintrag muss eine ganze Zahl zwischen 0 und 255 sein; das Array muss ein bis 128 Elemente enthalten.
Was geschieht bei einem anderen Format?
Die Anfrage schlägt als ungültige Eingabe fehl. Zulässig sind nur <code>hex-colon</code> und <code>base64</code>.
Wie viel kostet die Formatierung per API?
Jede API-Anfrage kostet $0.002. Sie können denselben deterministischen Formatierer auch im Browser ausführen.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/security/ssh-key-fingerprint-format \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"hash_bytes":[222,173,190,239,0,1,127,128],"format":"hex-colon"}'const res = await fetch("https://api.kit.forhosting.com/security/ssh-key-fingerprint-format", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"hash_bytes": [
222,
173,
190,
239,
0,
1,
127,
128
],
"format": "hex-colon"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/security/ssh-key-fingerprint-format",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"hash_bytes": [
222,
173,
190,
239,
0,
1,
127,
128
],
"format": "hex-colon"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/security/ssh-key-fingerprint-format", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"hash_bytes":[222,173,190,239,0,1,127,128],"format":"hex-colon"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"hash_bytes":[222,173,190,239,0,1,127,128],"format":"hex-colon"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/security/ssh-key-fingerprint-format", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"hash_bytes": [
222,
173,
190,
239,
0,
1,
127,
128
],
"format": "hex-colon"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "security.ssh_key_fingerprint_format",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_items | 128 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |