web-dev-qa-db-fra.com

Comment décoder les informations de police codées de base64?

J'ai rencontré un site Web qui a utilisé des informations de police codées. J'ai essayé de convertir cette police codée en un fichier binaire via le service Web Base64 endoder/décodeur , mais je n'ai pas pu savoir quel est le format du fichier résultant.

ICI est la teneur en CSS codée (le contenu est trop gros pour être copié/coller ici).

Merci!

[ÉDITER]

S'il vous plaît ne spéculez pas sur ce que je veux faire.

Je pose des questions sur la manière dont le code Base64 a été forgé et ce qui me manque de pouvoir inverser le processus, ce qui signifie que je ne comprends pas tout ce qui y est. Cette technique est souvent utilisée dans les pages Web avec des polices personnalisées et semble avoir quelques améliorations par rapport au fichier de police brutes directement donné par référence dans le fichier CSS. Je suis pleinement conscient que les polices impliquées sont des entreprises commerciales et ne peuvent pas être utilisées librement.

Ce débat est hors sujets, arrêtez Trolling .

24
Bernard Rosset

1) Localisez la déclaration de police complète, par exemple, data:font/opentype;base64,AaBbCcDdEeFf0123456789==

2) Copier la partie de données codée; Exclure la déclaration de type de principale déclaration et la virgule.

Drop this data:font/opentype;base64,

Tu veux ça: AaBbCcDdEeFf0123456789==

3) Décode les données et enregistrer sous forme de fichier codé binaire. Ne pas Décodez les données et collez manuellement le résultat dans un éditeur de texte. Utilisez http://www.motobit.com/util/base64-decoder-encoder.asp Sélectionnez la section "Décodez les données d'une chaîne de base64" et "Exporter vers un fichier binaire".

4) Affichez le fichier à l'aide d'un éditeur de texte brut. Les 3 ou 4 premières lettres du fichier sont probablement "Woff", "OTF" ou "TTF". Ceci est votre type de fichier actuel.

37
skibulk

Pâte data:application/font-woff;base64,d09GRgABAA..... Dans la barre d'adresse du navigateur (idéalement chrome). Il téléchargera le fichier, renommera le fichier avec une extension de fichier appropriée. Cela fonctionnera avec n'importe quel fichier de police.

6
Plant Sam

C'est une question intéressante, malgré son aimant pour les chasseurs de pirate. Je me concentrerai sur la question technique et j'essaie de donner une idée.

En regardant le fichier OP, il y a six polices dedans. Chacun est essentiellement une règle CSS; Voici le premier dans l'exemple fichier:

@font-face {
    font-family: "p22-underground-1";
    font-style: normal;
    font-weight: 400;
    src: url("data:font/opentype;base64,d09GRk9...yn4b8C3JEZAA==");
}

Cela vous indique tout ce que vous devez savoir pour identifier la police. Vous pouvez voir son nom ( P22-Underground-1) Son style ( normal), poids ( 400) et Type ( OpenType).

Quant à la décodage de la police de base64 dans un fichier binaire, vous devez prendre le bit de base64 (indiqué ci-dessus comme d09GRk9...yn4b8C3JEZAA==, note que la masse dans le Cenre a été supprimée pour économiser de l'espace ici) et le décoder avec un décodeur de base64 tel que Motobit ou en écrivant un programme.

Si vous êtes sur Linux, vous pouvez utiliser base64 -d <file> Pour obtenir la même chose.

Si le décodage échoue, la chaîne de base64 peut également être pourcentage-échappée . Ce n'est pas le cas avec l'exemple de l'OP mais je connais au moins un site où c'est le cas.

Vous pouvez vérifier cela en cherchant pourcentage % symboles dans la chaîne de base64. Si les caractères pourcentage sont les seuls caractères non - valides base64, vous pouvez essayer de ne pas sentir la chaîne avant de décoder.

Il y a un site Web où vous pouvez le faire ou, encore une fois, pour ceux de Linux, une méthode de ligne de commande est indiquée ci-dessous (il existe de nombreuses façons de le faire; celui-ci utilise Perl):

Perl -MURI::Escape -lne 'print uri_unescape($_)' < file.b64_escaped > file.b64

J'ai écrit un petit outil dans Ruby qui prend une URL et décharge des polices embarquées en fichiers en utilisant les techniques ci-dessus afin que je puisse dire qu'ils travaillent.

3
starfry

Le CSS indique clairement le mimeType d'être font/opentype... la police est en opentéype (.otf) format.

Cependant, même si vous décodez la police, veuillez vérifier la licence. Vous ne serez peut-être pas autorisé à utiliser cette police dans vos propres projets.

Les polices référencées dans les fichiers CSS ( Proxma nova [Mark Simonson Studios] et P22 SOUTERRY [Fondé de type P22]) ne sont pas libres . Vous devez acheter une licence pour les utiliser légalement.

2
Andrew Moore