Encodeur PEM Base64
Rangez du texte comme on range certificats et clés : du Base64 standard en lignes de 64 caractères entre les marqueurs -----BEGIN CERTIFICATE----- et -----END CERTIFICATE-----, ou ouvrez un bloc PEM pour retrouver le texte d'origine. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Libellé
- CERTIFICATE
- Mode de calcul
- Encode
- Longueur de ligne
- 64
- Octets
- 205
Privacy-Enhanced Mail (PEM) est l'enveloppe texte dans laquelle voyagent encore presque tous les certificats, clés privées et clés publiques : une charge Base64 pliée en lignes de soixante-quatre caractères entre des marqueurs assortis -----BEGIN LABEL----- et -----END LABEL-----. Les développeurs collent ces blocs dans des configs, des secrets CI, des secrets TLS Kubernetes et des journaux ACME ; le support ré-enveloppe un blob Base64 continu pour qu'OpenSSL l'accepte ; les formateurs montrent comment un en-tête CERTIFICATE diffère de PRIVATE KEY sans installer une boîte à outils crypto complète.
Encodez du texte en un bloc PEM avec lignes de 64 caractères
Lorsque label est omis, le moteur utilise CERTIFICATE, ce qui correspond à l'intention de recherche la plus courante pour les collages de certificats ; d'autres libellés fréquents incluent PRIVATE KEY, RSA PRIVATE KEY, PUBLIC KEY et CERTIFICATE REQUEST.
Le moteur sérialise la chaîne en octets UTF-8, mappe ces octets vers l'alphabet Base64 standard avec remplissage par signes égal, plie le Base64 continu en lignes d'exactement soixante-quatre caractères avec une dernière ligne plus courte si besoin, et enveloppe le corps entre -----BEGIN LABEL----- et -----END LABEL----- en utilisant le même libellé des deux côtés. Les charges vides sont légales : vous obtenez encore un PEM bien formé avec corps vide et en-têtes assortis, utile pour tester les analyseurs.
Le texte multilingue et la ponctuation font l'aller-retour car le chemin est UTF-8 complet, pas un raccourci Latin-1.
Décodez un bloc PEM et gérez l'entrée invalide en toute sécurité
Définissez mode à decode et placez un bloc PEM complet dans text, y compris les lignes BEGIN et END. Les espaces avant et après le bloc sont tolérés pour que les collages multilignes issus de tickets et de documentation fonctionnent encore. Le moteur localise le premier en-tête -----BEGIN LABEL-----, lit le libellé, trouve le pied -----END LABEL----- correspondant et rejette la requête lorsque le pied manque, lorsque le libellé END n'égale pas BEGIN, ou lorsqu'une borne d'encapsulation inattendue apparaît dans le corps.
Les lignes du corps sont rognées et jointes ; espaces, tabulations et sauts de ligne dans la région Base64 sont retirés, puis l'alphabet continu est validé avec les mêmes règles que le Base64 standard : caractères illégaux, pads au milieu, plus de deux signes égal de remplissage, ou une longueur dont le modulo quatre vaut un échouent avec un message explicite.
Préférez cette capacité lorsque l'intention de recherche est le cadrage PEM—en-têtes plus lignes de soixante-quatre caractères—plutôt que le Base64 brut sans encapsulation ou les alphabets URL-safe des cookies qui appartiennent à des encodeurs frères.
Cas d’usage
Normalisation des collages de certificats et de clés
Ré-enveloppez des charges Base64 continues ou en clair en lignes PEM de 64 caractères avec libellés BEGIN/END assortis pour qu'OpenSSL, les secrets Kubernetes et les serveurs web acceptent le collage.
Questions fréquentes
Comment encoder du texte en PEM Base64 ?
Le champ result est un bloc PEM multiligne avec des lignes Base64 de 64 caractères.
Comment décoder un bloc PEM ?
Envoyez mode decode et placez le PEM complet (y compris les lignes BEGIN/END) dans text.
Quelle longueur de ligne le PEM utilise-t-il ici ?
Les lignes du corps sont pliées à soixante-quatre caractères, la longueur classique du PEM pour certificats et clés.
Que se passe-t-il si le PEM est invalide ?
Le message décrit le problème ; la requête n'est pas facturée.
Quelle étiquette mettre dans les lignes BEGIN et END ?
CERTIFICATE est utilisée sauf si vous en choisissez une autre, comme PRIVATE KEY, RSA PRIVATE KEY, PUBLIC KEY ou CERTIFICATE REQUEST. La même étiquette figure sur les deux lignes. Au décodage, l'étiquette est lue dans le bloc, et celle que vous indiquez doit correspondre.
Outils associés
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/enc/base64-pem \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello, PEM!"}'const res = await fetch("https://api.kit.forhosting.com/enc/base64-pem", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello, PEM!"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/base64-pem",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello, PEM!"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/base64-pem", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello, PEM!"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello, PEM!"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/base64-pem", 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
{
"text": "Hello, PEM!"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base64_pem",
"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.
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. |
Notes techniques
Cet encodeur PEM Base64 convertit dans les deux sens via un seul champ mode : encode transforme du texte UTF-8 en un bloc PEM au format standard avec pliage classique des lignes ; decode retire les en-têtes et récupère la charge UTF-8 ; et rejette un cadrage mal formé, des libellés incompatibles et un Base64 illégal avec une erreur invalid_input explicite. Le parcours gratuit du navigateur et l'API prépayée partagent le même algorithme pur, afin que devoirs, documentation et pipelines ne divergent jamais sur un saut de ligne. Le succès API coûte $0.002 par élément ; les échecs de validation ne sont pas facturés.
Encodez du texte en un bloc PEM avec lignes de 64 caractères
Envoyez un corps JSON avec le champ chaîne obligatoire text égal à la charge UTF-8 en clair que vous souhaitez expédier en PEM, laissez mode à sa valeur par défaut encode ou définissez mode à encode explicitement, et définissez éventuellement label avec la chaîne de type qui doit apparaître dans les bornes d'encapsulation. Les alias optionnels input, value, s, pem et payload sont acceptés pour le champ text, et direction, op et action pour mode, afin que clients générés et anciens noms de formulaire restent valides. La réponse inclut toujours result avec la chaîne PEM multiligne complète, mode encode, label qui reflète le type résolu, line_length fixé à soixante-quatre, base64_body comme Base64 continu sans en-têtes ni sauts de ligne pour les clients qui ont besoin des deux formes, et bytes égal à la longueur UTF-8 avant encodage pour que les tests puissent affirmer la taille de la charge.
Décodez un bloc PEM et gérez l'entrée invalide en toute sécurité
Si vous passez aussi label au décodage, il doit être égal au libellé trouvé dans le bloc ; un écart échoue avec invalid_input pour que l'automatisation puisse affirmer qu'elle a reçu PRIVATE KEY lorsqu'un CERTIFICATE a été collé par erreur. Après validation de l'alphabet, les octets sont décodés en UTF-8 avec un décodeur fatal, de sorte que des blobs DER non textuels qui ne sont pas de l'Unicode valide lèvent aussi invalid_input au lieu d'émettre des caractères de remplacement qui corrompraient les journaux. Un décodage réussi renvoie result comme la chaîne récupérée, mode decode, label issu des en-têtes, line_length soixante-quatre, base64_body comme le corps continu, et bytes comme la longueur UTF-8 décodée. Les échecs de validation ne sont pas facturés sur l'API prépayée, donc sonder un collage suspect reste bon marché pour les opérateurs et sûr pour les utilisateurs finaux.
Usage API, tarification, flux de travail et limites pratiques
Appelez l'outil PEM Base64 gratuit dans le navigateur pour des démonstrations en classe, des playbooks de support et des ré-enveloppages ponctuels d'un certificat collé sans installer OpenSSL. Un flux typique encode un court secret de configuration en PEM libellé pour le stocker dans un système de tickets, puis le décode sur le service récepteur avec mode decode en affirmant que bytes et label correspondent à l'original. Un autre flux normalise un corps de certificat Base64 continu arrivé sans sauts de ligne : encode n'est pas requis si vous avez déjà du PEM, mais decode accepte les corps pliés ou non tant que les en-têtes BEGIN et END sont présents, et vous pouvez ré-encoder après inspection de result si vous avez à nouveau besoin du pliage canonique de soixante-quatre caractères. Utilisez l'API prépayée du KIT lorsqu'un backend, une fonction serverless ou un SDK a besoin de la même étape d'encodage ou de décodage sous solde à $0.002 par élément réussi ; une validation échouée ne consomme jamais de solde après le rejet par le moteur. Associez cet endpoint à des outils Base64 simples lorsqu'un pipeline doit traiter à la fois des jetons sans cadre et des clés enveloppées en PEM, mais gardez les landings séparées pour que chaque page corresponde à une seule intention de recherche—encodeur pem base64 versus texte vers base64. Les auteurs qui livrent des SDK peuvent mapper le champ result directement vers un bouton copier, tandis que label et line_length rendent les exemples OpenAPI explicites pour les lecteurs qui ne connaissent que la forme classique d'un fichier certificat.
Cas d'intégration
Contrôles golden CI et documentation
Épinglez des fixtures encode et decode pour des échantillons CERTIFICATE et PRIVATE KEY afin que la documentation et les tests d'intégration continue échouent vite si le cadrage PEM dérive.
Support et formation
Agents et étudiants convertissent le texte en PEM Base64 et inversement dans le widget gratuit du navigateur, avec des erreurs invalid_input claires lorsque les en-têtes manquent ou que les libellés divergent.
Questions techniques
L'encodeur PEM Base64 est-il gratuit ?
L'outil navigateur s'exécute gratuitement sur votre appareil. Les appels API utilisent le solde prépayé KIT à $0.002 par élément réussi ; les échecs de validation ne sont pas facturés.