web-dev-qa-db-ja.com

base64でエンコードされたフォント情報をデコードする方法は?

エンコードされたフォント情報を使用するWebサイトに遭遇しました。このエンコードされたフォントを Base64 Endoder/Decoder Webサービスを介してバイナリファイルに変換しようとしましたが、結果のファイルの形式がわかりませんでした。

ここ はエンコードされたCSSコンテンツです(コンテンツが大きすぎてここにコピー/貼り付けできません)。

ありがとう!

[編集]

何をしたいのか推測しないでください。

私は、base64コードがどのように偽造されているか、プロセスを元に戻すために欠けているものについて質問しています。つまり、その中のすべてを理解していません。これらの手法は、カスタムフォントを使用するWebページでよく使用され、CSSファイルで直接参照される生のフォントファイルと比較していくつかの改善点があるようです。関連するフォントは商用フォントであり、自由に使用できないことを十分に承知しています。

その議論は話題外です、停止トローリング

24
Bernard Rosset

1)data:font/opentype;base64,AaBbCcDdEeFf0123456789==などの完全なフォント宣言を見つけます。

2)エンコードされたデータ部分をコピーします。先頭の型宣言とコンマを除外します。

これをドロップdata:font/opentype;base64,

これが必要です:AaBbCcDdEeFf0123456789==

3)データをデコードし、バイナリエンコードされたファイルとして保存します。 データをデコードせず、データを手動でテキストエディタに貼り付けます。 http://www.motobit.com/util/base64-decoder-encoder.asp を使用して、「Base64文字列からデータをデコードする」オプションと「バイナリファイルにエクスポートする」オプションを選択します。

4)プレーンテキストエディターを使用してファイルを表示します。ファイルの最初の3文字または4文字は、おそらく「woff」、「otf」、または「ttf」です。これが実際のファイルタイプです。

37
skibulk

貼り付けdata:application/font-woff;base64,d09GRgABAA.....ブラウザ(理想的にはChrome)のアドレスバー。ファイルをダウンロードし、適切なファイル拡張子を付けてファイル名を変更します。これはどのフォントファイルでも機能します。

6
Plant Sam

これは、海賊ハンターにとって魅力的であるにもかかわらず、興味深い質問です。私は技術的な質問に焦点を当て、いくつかの洞察を与えようとします。

OPのファイルを見ると、6つのフォントがあります。それぞれが基本的にCSSルールです。これがサンプルファイルの最初のものです。

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

これにより、フォントを識別するために知っておく必要があるすべてのことがわかります。あなたはその名前を見ることができます(p22-underground-1)そのスタイル(normal)、重量(400)およびタイプ(opentype)。

フォントをbase64からバイナリファイルにデコードする場合は、base64ビットを取得する必要があります(上記のd09GRk9...yn4b8C3JEZAA==、ここのスペースを節約するために、中央の大部分が削除されていることに注意してください)。 Motobit などのbase64デコーダーを使用して、またはプログラムを記述してデコードします。

Linuxを使用している場合は、base64 -d <file>同じことを達成します。

デコードが失敗した場合、base64文字列も percent-escaped になる可能性があります。これはOPの例には当てはまりませんが、少なくとも1つ site がわかっています。

これを確認するには、パーセント% base64文字列のシンボル。パーセント文字が唯一の非--- 有効 base64文字である場合、デコードする前に文字列のエスケープを解除することができます。

これを行うことができる web site があります。また、Linuxの場合は、コマンドラインメソッドを以下に示します(これを行うには多くの方法があります。これにはPerlを使用します)。

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

私はRubyで小さなツールを作成しました。これは、URLを取得し、上記の手法を使用して埋め込みフォントをファイルにダンプするので、それらが機能すると言えます。

3
starfry

CSSはMIMEタイプをfont/opentype...フォントはOpenType(.otf) フォーマット。

ただし、フォントをデコードする場合でも、ライセンスを確認してください。自分のプロジェクトでそのフォントを使用できない場合があります。

CSSファイルで参照されているフォント( Proxma Nova [Mark Simonson Studios]および P22 Underground [P22 Type Foundry])は無料ではありません。それらを合法的に使用するには、ライセンスを購入する必要があります。

2
Andrew Moore