2016-08-08 13 views

答えて

2

「デジタル署名」は、署名自体がさまざまな暗号アルゴリズムで作成され、異なる構造にラップされるため、広義です。

署名(暗号操作の生成物として)は常にバイナリです。ほとんどのラッピング形式もバイナリです。いくつかの稀なケース(例えばOpenPGPの場合)では、バイナリシグネチャをエンコードするオプションのテキストベース(BASE16またはBASE64)があります。

「ドット」の問題はあまり意味がありません。もちろん、シグネチャには任意のバイト値が含まれる可能性があるため、0x2E(46 dec)の値を持つバイトがシグネチャで使用できます。値が0x2Eのバイトは、 ASCII互換性のあるテキストとして表示されている場合に、ドットとして解釈されます。

特定のエンコーディングでシグニチャのテキストにドットが可能かどうかは、エンコーディングスキームによって異なります。通常のベース64エンコーディングはドットを含まず、英数字と+,\または=文字のみを含みます。

+0

お返事ありがとう@ Eugene Mayevski 'EldoSありがとうございます。私はちょうどRSAwithSHA1を使用してJavaプログラムで署名を作成し、文字列の結果を取得します。だから私は '。'この文字列の結果に文字を含めることができます(なぜなら、 '。'を使用して他のフィールドと署名を分割するからです) –

+1

@phucその署名はバイナリです。どのようにテキストに変換し、それに含まれるものはあなた次第です。 –