モジュールマルチベース
Multibase は Base1x エンコーディングに基づいており、さまざまなエンコーディング プレフィックス エンコーディング方法が導入されています。
マルチベースは、異なるエンコード方式を使用して同じデータをエンコードし、エンコード方式を示すプレフィックスを追加できます。マルチベースでサポートされているエンコード方式は 15 種類あります。つまり、base1、base2、base8、base10、base16、base32、base32hex、base32z、base36、base40、base56、base58flickr、base58btc、base64、base64url。その中で、base16、base32そしてbase64比較的よく使われます。
マルチベースを使用すると、バイナリ データの表現を変更せずに変更できます。たとえば、ランダムに生成されたバイナリ データを次のようにエンコードします。base32次の形式の文字列:
1
2
3
4
5
6
7
8const {
encode
} = require('multibase');
const crypto = require('crypto');
const data = crypto.randomBytes(10); // generate 10 bytes random data
const encodedStr = encode(data, 'base32'); // encode data to base32 string
console.log(encodedStr); // ==> "bpgwnvztqmlbo5fy"
上記の文字列を生のバイナリ データにデコードします。
1
2
3
4
5
6const {
decode
} = require('multibase');
const data = decode('bpgwnvztqmlbo5fy', 'base32'); // decode base32 string to data
console.log(data); // ==> <Buffer a7 55 3d 33 ca 97 ac 0d aa 40>
ご覧のとおり、マルチベースを通じて、元のバイナリ データを次のようにエンコードします。base32この文字列は生のバイナリ データにデコードできます。
静的関数
encode
マルチベースモードでデータをエンコードする
1
2static String multibase.encode(Buffer data,
String codec);
呼び出しパラメータ:
- data:Buffer、エンコードされるデータ
- codec: 文字列、エンコード方法を指定します
返される結果:
- String、エンコードされた文字列を返します
decode
マルチベースモードで文字列をバイナリデータにデコードします
1static Buffer multibase.decode(String data);
呼び出しパラメータ:
- data: String、デコードされる文字列
返される結果:
- Buffer、デコードされたバイナリデータを返します