Formater une empreinte SSH en hexadécimal ou Base64
Une empreinte SSH est une représentation compacte d’octets de hachage qui permet de comparer une clé publique à une valeur fiable.
Lancer gratuitement
Ce formateur reçoit les octets que vous avez déjà calculés et les affiche de manière cohérente en hexadécimal minuscule séparé par deux-points ou en Base64 sans remplissage. Il n’analyse aucune clé, ne choisit aucun algorithme et ne calcule aucun condensat. En séparant le hachage de sa présentation, il permet aux scripts, outils d’administration, documentations et tests de produire la notation attendue sans modifier les octets d’origine.
Partez du condensat brut, et non d’un fichier de clé
Cette capacité accepte les octets d’un hachage déjà calculé à partir d’une clé publique SSH. Fournissez-les dans leur ordre d’origine sous forme d’entiers compris entre 0 et 255. Ainsi, un condensat commençant par 222, 173, 190 et 239 débute par <code>de:ad:be:ef</code> dans l’affichage hexadécimal. Le formateur refuse volontairement une ligne de clé OpenSSH, un bloc PEM, un certificat ou un texte qui ressemble simplement à un condensat. L’analyse et le hachage doivent être effectués auparavant. Cette séparation est essentielle, car une chaîne arbitraire ne permet pas de déduire sûrement l’encodage de la clé ou l’algorithme employé. Elle facilite aussi les tests : une même séquence produit toujours les mêmes caractères. Conservez chaque octet, y compris les zéros initiaux, car toute suppression modifie les formes hexadécimale et Base64. Les tableaux vides et ceux dépassant 128 octets sont refusés afin d’écarter les valeurs inutiles ou les charges accidentelles présentées comme des empreintes.
Choisissez l’affichage attendu par le système destinataire
Sélectionnez <code>hex-colon</code> lorsqu’un outil, un inventaire ou une procédure attend deux chiffres hexadécimaux minuscules par octet, séparés par deux-points. Chaque octet conserve sa largeur : zéro devient <code>00</code>, quinze <code>0f</code> et 255 <code>ff</code>. Choisissez <code>base64</code> si la cible attend l’alphabet compact couramment utilisé pour les empreintes SSH modernes. Le résultat Base64 ne comporte pas de signes égal de remplissage finaux, conformément à l’affichage SSH habituel. Ces options changent uniquement la représentation : elles ne modifient, n’inversent, ne tronquent et ne rehachent jamais les octets. La réponse contient <code>fingerprint</code> et <code>format</code> afin que les traitements suivants conservent la notation avec la valeur. Les noms sont stricts : une faute, une valeur inconnue ou une casse différente produit une erreur plutôt que de sélectionner silencieusement une valeur par défaut vraisemblable mais incorrecte.
Comparez les empreintes avec prudence et connaissez la limite
N’utilisez la valeur formatée qu’après avoir établi comment le condensat brut a été obtenu. Une correspondance n’est significative que si les deux côtés ont appliqué le même algorithme aux mêmes octets canoniques de clé publique. La mise en forme ne prouve pas ces conditions, ne renforce pas le condensat et n’authentifie pas un hôte. Notez séparément l’algorithme si le protocole ne l’indique pas. Pour une comparaison automatisée, normalisez les deux valeurs à partir des octets ou imposez un format explicite au lieu de le deviner grâce à la ponctuation. Cette capacité fournit des résultats stables pour les terminaux, rapports de déploiement, inventaires, validations et tests de régression. Elle n’accède pas au réseau et ne conserve aucune clé. La version navigateur s’exécute localement ; l’automatisation par API coûte $0.002 par requête. Toute valeur invalide échoue clairement. En cas de différence, arrêtez-vous et vérifiez la source par un canal fiable.
Cas d’usage
Préparer une confirmation d’hôte
Affichez le condensat dans la notation exacte présentée à l’opérateur avant l’approbation d’un nouvel hôte SSH.
Uniformiser un inventaire
Conservez une présentation cohérente même lorsque les outils d’analyse renvoient les octets bruts du condensat.
Créer des jeux de test déterministes
Produisez des empreintes attendues stables sans dépendre des commandes du système ni des paramètres régionaux.
Questions fréquentes
Cet outil calcule-t-il le hachage d’une clé publique SSH ?
Non. Il met uniquement en forme des octets déjà calculés ; l’analyse de la clé et le hachage doivent être effectués en amont.
Que renvoie le format Base64 ?
Il utilise l’alphabet Base64 standard sans signes égal de remplissage finaux et conserve l’ordre initial des octets.
Le résultat hexadécimal conserve-t-il les zéros initiaux ?
Oui. Chaque octet est représenté par exactement deux chiffres hexadécimaux minuscules, séparés par des deux-points.
Quelles valeurs d’octet sont valides ?
Chaque élément doit être un entier compris entre 0 et 255, et le tableau doit contenir de un à 128 éléments.
Que se passe-t-il si je demande un autre format ?
La requête échoue avec une erreur de saisie. Seules les valeurs <code>hex-colon</code> et <code>base64</code> sont acceptées.
Quel est le coût du formatage par API ?
Chaque requête API coûte $0.002. Vous pouvez aussi exécuter le même formateur déterministe dans votre navigateur.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"hash_bytes": [
222,
173,
190,
239,
0,
1,
127,
128
],
"format": "hex-colon"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "security.ssh_key_fingerprint_format",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_items | 128 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |