Ripple Base58エンコーダー&デコーダー
「Hello World」はRipple Base58でJxErpTiA7PhnBMdになります。XRP Ledgerの字母はr、p、s、h、nで始まり、0、O、I、lを使わないので、従来のXRPアドレスと同じ文字の並びになります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- Hello World
- 計算モード
- Encode
- 結果
- JxErpTiA7PhnBMd
- 入力
- Hello World
- Base58 (Ripple 方式)
- JxErpTiA7PhnBMd
- アルファベット名
- ripple
Ripple Base58エンコーダーは、通常のUTF-8テキストを、クラシックアドレス向けにXRP Ledgerが広めた五十八文字のアルファベットを使うコンパクトな文字列へ変換し、Ripple Base58デコーダーはその対応を逆にして元のテキストを復元します。アルファベットは数字と文字を残しつつ、人が最も混同しやすい四つの字形であるゼロ・大文字O・大文字I・小文字Lを除きますが、残りの記号の並びはBitcoin Base58やFlickr Base58と全く異なるため、同じバイト列でも別の文字列になります。開発者はXRP風のフィクスチャを確認し、教員はアルファベットを対比し、スクリプトは暗号ライブラリなしで決定的な往復を必要とします。
Ripple Base58とは何か、Bitcoin Base58との違い
Base58は任意のバイト列を五十八記号のアルファベットへ写像するバイナリからテキストへの符号化の一群です。XRP Ledgerはゼロ・大文字O・大文字I・小文字Lを除いた残りの記号について、r・p・s・h・nで始まり固定の五十八文字表へ続く具体的な順序を広めました。これはBitcoin順でもFlickr順でもありません。
そのためクラシックXRPアドレスは、同じ四つの曖昧な字形を避けていてもBitcoinアドレスとは見た目が異なります。符号化は入力バイトをビッグエンディアンの二百五十六進整数として走査し、五十八で繰り返し割り、各剰余をRippleアルファベットへ写像します。
先頭のゼロバイトは出力の先頭のr文字になり、これはBitcoinの1ではなく、このアルファベットのゼロ桁がrだからです。復号は対応を逆転し、各文字がゼロから五十七の桁になり、大きな整数が再構築され、先頭rの規則でバイト配列が復元されます。
アルファベットにパディング文字がないため、長さだけではBase64のような固定ブロック長を意味しませんが、双方がRippleアルファベットと先頭ゼロの慣習に合意していれば往復は成立します。アルファベット外の文字(ゼロ、O、I、l、句読点、空白)が現れたら、デコーダーは明確に失敗しなければなりません。
Base64でも、Bitcoin Base58だけでも、口座種別プレフィックスとチェックサム付きの完全なXRPアドレス検証器でもありません。
実務上のヒント・制限・Bitcoin/Flickr Base58との違い
人が読めるテキストや、Rippleアルファベット下で貼り付けたい短いバイナリ風テキストから始めるときはencodeを、フィクスチャファイル・サンプルアドレス本体・XRP風Base58を出すライブラリから既にRipple Base58文字列を持つときはdecodeを優先してください。往復検査が最速のスモークテストです。
Hello Worldのような既知の句を符号化し、同じ句の古典的Bitcoinフィクスチャと結果が異なることを確認し、その文字列を復号して元の句がバイト単位で戻ることを確認します。極端に長い文字列は大きな整数として膨張するため、分割するかオフラインで扱う方がよいです。
本ツールは完全なXRPアドレスパーサーではなく、口座種別プレフィックスの除去、チェックサムの再計算、mainnetとテストフィクスチャの分類は行いません。
フィクスチャとXRPLツールが既にこのアルファベット順を使うならRipple Base58を、ウォレットとエクスプローラーが大文字先行のBitcoin表を期待するならBitcoin Base58を、小文字先行の短縮URL風コードならFlickr Base58を選んでください。
教育では同じ文をRipple・Bitcoin・Flickrの三アルファベットで並べて符号化し、四つの曖昧字形をすべて除いても文字列が異なる理由を学習者に示してください。
活用例
テストでのXRP風フィクスチャ往復
フィクスチャ文から既知のRipple Base58文字列を生成し、CIで復号が同じUTF-8バイトを暗号依存なしで復元することを確認します。
XRPアルファベット順の人間に安全な短縮コード
Rippleアルファベットで短いラベルを符号化し、印刷コードが0/O/I/lの混同を避け、XRP風の文字順に合うようにします。
RippleとBitcoinのBase58アルファベットの教育
教室でHello Worldを両アルファベットで符号化して文字列を比較し、無効文字を強制して厳密な検証を示します。
よくある質問
このRipple Base58エンコーダーはどのアルファベットを使いますか?
Ripple/XRPアルファベット:rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz。0・O・I・lを除き、Bitcoin Base58とは文字順が異なります。
Ripple Base58はBitcoin Base58とどう違いますか?
どちらも0・O・I・lを除きますが、残る五十八文字の並びが異なります。そのため同じバイト列でも別の文字列になり、先頭ゼロはBitcoinの1ではなくRippleではrに写像されます。
完全なXRPアドレスを検証しますか?
いいえ。 Ripple Base58アルファベット下の生のUTF-8テキストの符号化と復号のみです。口座種別プレフィックスやアドレスのチェックサムは検査しません。
Ripple Base58の文字列がrで始まることがあるのはなぜですか?
rがRippleの字母でゼロを表す文字だからです。データの先頭にあるゼロのバイトは、Bitcoinなら1になるところが先頭のrになり、デコードすると再びゼロのバイトに戻ります。
0、O、I、lを含む文字列をデコードするとどうなりますか?
この4文字はRippleの字母になく、記号や空白も同様です。別のテキストを黙って作るのではなく、分かりやすいメッセージで止まるので、打ち間違いをその場で直せます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/base58-ripple \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello World"}'const res = await fetch("https://api.kit.forhosting.com/enc/base58-ripple", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello World"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/base58-ripple",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello World"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/base58-ripple", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello World"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello World"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/base58-ripple", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "Hello World"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base58_ripple",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_chars | 100000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
encodeを選ぶと平文がRipple Base58へ、decodeを選ぶとRipple Base58ペイロードからUTF-8が戻ります。アルファベット外の文字は静かな破壊ではなく明確なinvalid_inputエラーになります。経路はUTF-8バイト上の純粋な決定的算術であり、ネットワークも乱数シードも壁時計依存もないため、無料のブラウザ実行器と前払いAPIは毎回同じJSONを返します。
Ripple Base58とは何か、Bitcoin Base58との違い
黙った置換は別ペイロードを捏造し、ウォレット・フィクスチャ・自動テストでは硬いエラーより有害です。このランディングはRipple Base58エンコーダー、XRP Base58デコーダー、Rippleアルファベット変換をオンラインで探す方向けです。
APIの呼び出し方と応答の内容
既定のmodeはencodeで、textのUTF-8バイトがRippleアルファベット下のBase58文字列になります。必須の文字列フィールドtext(別名input・value・data)と、encodeまたはdecodeのいずれかの任意modeを含むJSON本体を送信してください。mode decodeはtextをRipple Base58ペイロードとして扱い、復元したUTF-8文字列を返します。入力長は十万文字に上限があり、病的な巨大整数の膨張で単一リクエストがWorkerメモリを尽くすことを防ぎます。encode成功時の応答には、同じ符号化文字列のmode・input・result・base58、五十八文字のRipple定数alphabet、rippleのalphabet_name、UTF-8バイト数のinput_bytes、符号化文字数のoutput_length、短い英語メッセージが含まれます。decode成功時には、復号UTF-8のmode・input・result・text、同じアルファベット欄、input_length、output_bytes、対応するメッセージが含まれます。検証失敗(text欠落、文字列でないtext、過大入力、未知のmode、無効なBase58文字、有効なUTF-8でない復号バイト)はinvalid_inputを返し、課金されません。料金は成功リクエストごとに$0.002の定額で、単位はitem、限界単価はゼロです。
実務上のヒント・制限・Bitcoin/Flickr Base58との違い
意図的に禁止文字(数字のゼロ、大文字O、大文字I、小文字L)をdecode要求に入れ、クライアントがinvalid_inputと、索引と除外字形を名指すエラーメッセージを扱うことを検証してください。公開された文字上限未満にペイロードを保ってください。invalid_inputを返す失敗タスクは前払い残高を消費しないため、アルファベット外文字を試す探索スクリプトを安く保てます。
技術的な質問
0・O・I・lを含む文字列を復号するとどうなりますか?
APIはinvalid_inputを返し、不正文字とその索引を示し、Ripple Base58がそれらの四字形を除外することを伝えます。失敗タスクは課金されません。
Ripple Base58エンコーダーは無料ですか?
ブラウザツールは無料でローカル実行されます。API呼び出しは成功リクエストごとに$0.002の前払いKIT残高を使います。invalid_inputの失敗は課金されません。