Base58 การเข้ารหัสและถอดรหัส
ข้อความธรรมดาจะถูกแปลงเป็นไบต์ตาม UTF-8 ก่อน จากนั้นจึงเข้ารหัสเป็น Base58 หรือ Base58Check
เข้ารหัสและถอดรหัส Base58 และ Base58Check ให้เสร็จสมบูรณ์ในเบราว์เซอร์ ซึ่งรองรับการดูข้อความ ไฟล์ ตารางอักขระที่กำหนดเอง และผลลัพธ์ที่เป็นเลขฐานสิบหก
คำแนะนำที่เกี่ยวข้อง
Base58 และ Base58Check คืออะไร
Base58 เป็นการเข้ารหัสข้อความที่มีจุดประสงค์เพื่อให้มนุษย์อ่านและคัดลอกและวาง มันจะลบอักขระที่อ่านผิดออกได้ง่าย เช่น 0, O, I และ l ดังนั้นจึงมักใช้ในสถานการณ์ต่างๆ เช่น โลโก้แบบสั้น รหัสคำเชิญ ที่อยู่กระเป๋าเงิน และรหัสการแชร์แบบออฟไลน์
ตารางอักขระมาตรฐาน Bitcoin Base58 คือ `123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz` หน้านี้สนับสนุนทั้งตัวอักษรเวอร์ชัน Flickr และตัวอักษร 58 อักขระที่คุณกำหนดเอง
Base58Check เป็นโซลูชันที่ผนวกเช็คซัมขนาด 4 ไบต์ต่อท้ายไบต์ดั้งเดิม จากนั้นจึงเข้ารหัสเป็น Base58 โดยรวม มักใช้สำหรับที่อยู่ Bitcoin เก่า การส่งออกคีย์ส่วนตัว WIF รหัสคำเชิญ หรือสตริงที่จำเป็นต้องถอดเสียงด้วยตนเอง เป้าหมายคือการตรวจจับการพิมพ์ผิด คำที่หายไป หรือไม่เป็นระเบียบก่อนหน้านี้
หากคุณได้รับเพย์โหลดแบบไบนารี เพย์โหลดที่อยู่ หรือส่วนแฮช เนื้อหาที่ถอดรหัสไม่จำเป็นต้องเป็นข้อความที่สามารถอ่านได้ ในเวลานี้ เหมาะกว่าที่จะเปลี่ยนไปใช้เลขฐานสิบหกในการดู แทนที่จะตัดสินอักขระที่อ่านไม่ออกว่าเป็นความล้มเหลวในการถอดรหัส
IPFS CIDv0 ใช้มาตรฐาน Base58btc แทน Base58Check; `bc1...` ที่อยู่ Bitcoin ประเภทนี้เป็นของ Bech32 และไม่อยู่ในขอบเขตของหน้านี้ Base58
กรณีการใช้งาน
- ตรวจสอบว่ามีการป้อนที่อยู่ Bitcoin เก่า WIF สตริงการส่งออกคีย์ส่วนตัว หรือรหัสการแบ่งปัน Base58Check ที่กำหนดเองไม่ถูกต้อง
- เข้ารหัสไฟล์ขนาดเล็ก แฟรกเมนต์ไบนารี่ หรือทดสอบเพย์โหลดลงใน Base58 เพื่อให้ส่งในบันทึก แชท หรือตั๋วได้อย่างง่ายดาย
- ถอดรหัสสตริง Base58 เป็นเลขฐานสิบหก จากนั้นวิเคราะห์หาเวอร์ชันไบต์ แฮช หรือเพย์โหลดดิบ
- เปรียบเทียบเอาต์พุตระหว่าง Bitcoin Base58 และ Flickr Base58 เพื่อดูว่าเหตุใดไบต์ชุดเดียวกันจึงมีผลลัพธ์ที่แตกต่างกันในระบบที่ต่างกัน
- ออกแบบตารางอักขระ 58 ตัวอักษรของคุณเองสำหรับรหัสเชิญภายใน โลโก้แบบสั้น หรือโทเค็นออฟไลน์ และตรวจสอบว่าปลายทั้งสองด้านสอดคล้องกัน
วิธีการใช้งาน
- เลือกโหมดการเข้ารหัสหรือถอดรหัส หากคุณต้องการจัดการสตริงที่มนุษย์ป้อนซึ่งเสี่ยงต่อข้อผิดพลาด ให้เปิดตัวเลือก Base58Check
- เลือก Bitcoin, Flickr หรือตารางอักขระที่กำหนดเอง หากเป็นโปรโตคอลส่วนตัว ขั้นแรกให้แน่ใจว่าทั้งสองฝ่ายใช้ชุดลำดับอักขระ 58 ตัวชุดเดียวกัน
- ป้อนข้อความหรืออัปโหลดไฟล์เมื่อเข้ารหัส วางสตริง Base58 เมื่อถอดรหัส สลับไปใช้ผลลัพธ์เลขฐานสิบหกเพื่อดูไบต์ดิบหากจำเป็น
- คัดลอกหรือดาวน์โหลดโดยตรงหลังจากดูผลลัพธ์ หากเป็น Base58Check หน้าเว็บจะแจ้งพร้อมกันว่าการตรวจสอบผ่านหรือไม่
คุณสมบัติ
- โหมดคู่มาตรฐาน Base58 และ Base58Check: การเข้ารหัสปกติสามารถทำได้โดยตรง หรือสามารถผนวกหรือตรวจสอบผลรวมตรวจสอบ 4 ไบต์ได้โดยอัตโนมัติ
- สามารถเข้ารหัสทั้งข้อความและไฟล์ได้: ข้อความธรรมดาจะได้รับการประมวลผลตาม UTF-8 และไฟล์จะถูกเข้ารหัสตามไบต์ดิบ ซึ่งเหมาะสำหรับการจัดส่งเนื้อหาไบนารีแบบออฟไลน์
- ผลการถอดรหัสสามารถสลับระหว่างข้อความหรือเลขฐานสิบหกได้: อย่าติดอยู่กับคำพูดที่ไม่มีความหมายเมื่อพบเพย์โหลดของที่อยู่ ส่วนของแฮช หรือข้อมูลที่ไม่ใช่ UTF-8
- รองรับ Bitcoin, Flickr และตารางอักขระ 58 อักขระที่กำหนดเอง: เหมาะสำหรับความเข้ากันได้กับระบบที่มีอยู่หรือการดีบักโซลูชันรหัสสั้นส่วนตัว
- การประมวลผลภายในเบราว์เซอร์และการดาวน์โหลดผลลัพธ์: การเข้ารหัส การถอดรหัส และการตรวจสอบทั้งหมดจะเสร็จสิ้นภายในเครื่อง และสามารถคัดลอกหรือดาวน์โหลดเอาต์พุตได้โดยตรง
วิธีเลือก Base58, Base58Check, Base64
พวกเขาทั้งสองสามารถแปลงไบต์เป็นข้อความที่ผ่านได้ แต่โฟกัสจะแตกต่างไปจากเดิมอย่างสิ้นเชิง สิ่งสำคัญไม่ใช่ "สิ่งที่ล้ำหน้ากว่า" แต่สำคัญว่าคุณให้ความสำคัญกับการถอดเสียงแบบแมนนวลและการป้องกันข้อผิดพลาดมากกว่า หรือคุณให้ความสำคัญกับความกะทัดรัดและความเข้ากันได้แบบสากลหรือไม่
| แผน | เหมาะสมกว่า | ข้อดี | หมายเหตุ |
|---|---|---|---|
| Base64 เข้ารหัสBase64 URL ปลอดภัย | |||
| Base32 เข้ารหัส |
Best Practices
จะมีการให้ความสำคัญกับ Base58Check เมื่อมีการถอดเสียงหรือถ่ายทอดด้วยตนเองโดยฝ่ายบริการลูกค้า
ตราบใดที่สตริงถูกกำหนด จับภาพหน้าจอ ส่งต่อในแชท หรือป้อนใหม่ด้วยตนเอง การตรวจสอบผลรวมก็คุ้มค่าที่จะเปิดเสมอ จะไม่ป้องกันข้อผิดพลาดทั้งหมด แต่จะช่วยลดสถานการณ์ "ดูเหมือนว่าถูกต้อง แต่จริงๆ แล้วไม่มีอักขระ" ลงอย่างมาก
เมื่อผลลัพธ์ที่ถอดรหัสไม่ใช่ข้อความ ให้ดูที่เลขฐานสิบหกก่อน
ไม่รับประกันเนื้อหา เช่น เพย์โหลดที่อยู่ แฮช ส่วนหัวของรูปภาพ และส่วนที่บีบอัดว่าเป็น UTF-8 ขั้นแรกให้เปลี่ยนไปใช้เลขฐานสิบหกเพื่อยืนยันไบต์ต้นฉบับ จากนั้นตัดสินใจว่าจะแปลงไฟล์ แฮชต่อไป หรือส่งต่อให้กับเครื่องมืออื่นๆ เพื่อการประมวลผล
เครื่องมือเลขฐานสิบหกอย่าใช้ Base58 เป็นรูปแบบการจัดเก็บข้อมูลระยะยาวสำหรับไฟล์ขนาดใหญ่
Base58 เหมาะสำหรับสตริงแบบสั้นและเพย์โหลดขนาดเล็กถึงขนาดกลางมากกว่า ยิ่งไฟล์มีขนาดใหญ่ เอาต์พุตก็จะยาวขึ้น คัดลอกได้สะดวกน้อยลง และมีแนวโน้มที่จะถูกตัดทอนเป็น Rich Text เครื่องมือแชท หรือบันทึก
เมื่อปรับแต่งตารางอักขระ จะต้องซิงโครไนซ์กับเทอร์มินัลการผลิตทั้งหมด
ตราบใดที่เซิร์ฟเวอร์ สคริปต์ หรือไคลเอนต์ใช้ลำดับที่แตกต่างกัน ผลลัพธ์การเข้ารหัสและถอดรหัสทั้งหมดจะไม่ถูกต้อง แก้ไขลำดับ 58 อักขระก่อน จากนั้นจึงเขียนลงในโปรโตคอลหรือตัวอย่างทดสอบ
จัดลำดับความสำคัญของการเปรียบเทียบ Base64URL เมื่อจำเป็นต้องมีการส่งข้อมูลอินเทอร์เฟซที่สั้นกว่าและทั่วไปมากกว่า
ข้อดีของ Base58 คืออ่านง่ายและป้องกันความสับสน แต่ไม่ใช่ขนาดที่เล็กที่สุด หากสตริงถูกส่งผ่านระหว่างโปรแกรมเป็นหลัก และจะไม่ถูกคัดลอกโดยมนุษย์ โดยทั่วไปแล้ว Base64URL จะมีขนาดกะทัดรัดและธรรมดากว่า
Base64 URL ปลอดภัยคำถามที่พบบ่อย
ฉันควรเลือกอันไหนระหว่าง Base58 และ Base64
หากต้องการอ่าน คัดลอก หรือป้อนข้อมูลสตริงให้กับผู้อื่น ควรใช้ Base58 หากส่วนใหญ่ส่งในโปรแกรม อินเทอร์เฟซ พารามิเตอร์ JSON หรือ URL โดยปกติแล้ว Base64 หรือ Base64URL จะมีขนาดกะทัดรัดกว่า จุดเน้นของ Base58 คือความสามารถในการอ่านและการป้องกันการสร้างความสับสน ไม่ใช่เอาต์พุตที่สั้นที่สุด
Base58Check ช่วยแก้ปัญหาอะไรได้บ้าง?
โดยจะเพิ่มเช็คซัมขนาด 4 ไบต์ต่อท้ายเพย์โหลดดั้งเดิม จากนั้นเข้ารหัสเพย์โหลดทั้งหมดด้วย Base58 ด้วยวิธีนี้ เมื่อผู้ใช้พลาดคำ พิมพ์ผิด หรือเขียนผิดลำดับ เครื่องมือจะรายงานข้อผิดพลาดได้ทันเวลาได้ง่ายขึ้น แทนที่จะรับผลลัพธ์ที่ไม่มีความหมายอย่างเงียบๆ
หน้านี้สามารถตรวจสอบที่อยู่ Bitcoin ได้หรือไม่?
สามารถตรวจสอบได้ว่าเลเยอร์ Base58Check ถูกต้อง ดังนั้นจึงเหมาะสมที่จะตรวจสอบว่ามีข้อผิดพลาดในการป้อนข้อมูลที่ชัดเจนในที่อยู่ Base58 เวอร์ชันเก่าหรือสตริงการส่งออก WIF หรือไม่ อย่างไรก็ตาม จะไม่ระบุการใช้ที่อยู่ ประเภทเครือข่าย และประเภทสคริปต์เพิ่มเติม และจะไม่สนับสนุนที่อยู่ Bech32 เช่น `bc1...`
เหตุใดรหัสหลังจากการถอดรหัสจึงอ่านไม่ออก หรือข้อความแจ้งไม่ใช่ UTF-8
เนื่องจาก Base58 ถอดรหัสไบต์ดิบ จึงไม่จำเป็นต้องเป็นข้อความที่สามารถอ่านได้ สิ่งนี้สามารถเกิดขึ้นได้กับเพย์โหลดที่อยู่ แฮช ส่วนหัวของรูปภาพ หรือข้อมูลไบนารี่ที่กำหนดเอง เปลี่ยนเป็นเลขฐานสิบหกเพื่อดูไบต์ดิบ และโดยปกติแล้วคุณจะสามารถวิเคราะห์ต่อไปได้
ไฟล์ Base58 รองรับการเข้ารหัสและถอดรหัสหรือไม่
สนับสนุน. คุณสามารถอัปโหลดไฟล์ระหว่างการเข้ารหัส และหน้าจะถูกแปลงเป็น Base58 ตามไบต์ต้นฉบับ คุณยังสามารถดาวน์โหลดผลลัพธ์ต้นฉบับกลับมาได้หลังจากถอดรหัสแล้ว ยิ่งไฟล์มีขนาดใหญ่ สตริงเอาต์พุตก็จะยิ่งยาวขึ้น ทำให้เหมาะสำหรับเวิร์กโหลดขนาดเล็กถึงขนาดกลางหรือสถานการณ์การดีบัก
รองรับตารางอักขระใดบ้าง
ปัจจุบันรองรับมาตรฐาน Bitcoin Base58, Flickr Base58 และตารางอักขระ 58 อักขระที่คุณกำหนดเอง ตราบใดที่จุดสิ้นสุดการเข้ารหัสและจุดสิ้นสุดการถอดรหัสใช้ลำดับอักขระเดียวกัน ก็สามารถสื่อสารระหว่างกันได้
สามารถรองรับ IPFS CID หรือสตริงออนไลน์อื่นๆ ได้หรือไม่
CIDv0 สตริง Base58btc มาตรฐานดังกล่าวสามารถเข้ารหัสหรือถอดรหัสได้โดยตรง แต่เพจจะไม่แยกวิเคราะห์ multibase, multicodec หรือ semantics on-chain ที่เป็นรูปธรรมต่อไป Bech32 สตริง เช่น `bc1...` ไม่อยู่ในขอบเขตของ Base58
เนื้อหาที่อัพโหลดจะถูกส่งไปยังเซิร์ฟเวอร์หรือไม่?
ไม่ ข้อความ ไฟล์ และผลลัพธ์การตรวจสอบผลรวม Base58Check ทั้งหมดได้รับการประมวลผลภายในเบราว์เซอร์ ซึ่งเหมาะสำหรับการดีบักโหลดที่มีความละเอียดอ่อน ข้อมูลการทดสอบออฟไลน์ หรือส่วนย่อยของไฟล์ที่ไม่สะดวกในการอัปโหลด
การแก้ไขปัญหา
เคล็ดลับมีอักขระ Base58 ที่ผิดกฎหมาย
ตารางอักขระปัจจุบันไม่ยอมรับอักขระที่แยกออก เช่น 0, O, I และ l อาจเป็นไปได้ว่าคุณตัดตารางอักขระ Bitcoin / Flickr / ที่กำหนดเองผิด ขั้นแรกให้ยืนยันแหล่งที่มาของสตริง จากนั้นตรวจสอบว่าตารางอักขระสอดคล้องกับอีกฝ่ายหรือไม่
Base58Check การยืนยันล้มเหลว
ซึ่งมักจะหมายความว่าสตริงถูกคัดลอกน้อยเกินไป มีการเขียนอักขระไม่ถูกต้อง หรือไม่ใช่ Base58Check เอง ขั้นแรกให้ยืนยันว่าคุณจำเป็นต้องเปิด Base58Check จริงๆ หรือไม่ จากนั้นกลับไปตรวจสอบว่าเนื้อหาต้นฉบับเสร็จสมบูรณ์หรือไม่
ไม่สามารถบันทึกตารางอักขระแบบกำหนดเองได้
ตารางอักขระแบบกำหนดเองต้องมีความยาว 58 อักขระพอดี และอักขระแต่ละตัวต้องปรากฏเพียงครั้งเดียว ขอแนะนำให้แก้ไขตารางอักขระ Bitcoin มาตรฐานก่อน เพื่อหลีกเลี่ยงอักขระที่หายไปหรืออักขระซ้ำ
ผลลัพธ์ที่ถอดรหัสไม่ใช่ข้อความ
นี่ไม่จำเป็นต้องเป็นข้อบกพร่อง สตริง Base58 จำนวนมากเดิมมีเพย์โหลดแบบไบนารี สลับเป็นเลขฐานสิบหกเพื่อดูหรือดาวน์โหลดผลการถอดรหัสเป็นไฟล์ จากนั้นจึงตัดสินใจในขั้นตอนถัดไป
อภิธานศัพท์
- Base58
- การเข้ารหัสข้อความ 58 บิตที่จะลบอักขระที่สับสนได้ง่าย เช่น 0, O, I, l ฯลฯ เหมาะสำหรับการป้อนข้อมูลด้วยตนเองและการแชร์สำเนา
- Base58Check
- เช็คซัมขนาด 4 ไบต์จะถูกต่อท้ายหลังจากเพย์โหลดดั้งเดิม จากนั้นการเข้ารหัส Base58 ทั้งหมดจะถูกนำมาใช้เพื่อตรวจจับข้อผิดพลาดอินพุตก่อนหน้านี้
- เพย์โหลด
- ทำ Base58 หรือ Base58Check เนื้อหาไบต์ดิบก่อนการเข้ารหัส ซึ่งอาจเป็นข้อความ ไบต์ของไฟล์ เพย์โหลดที่อยู่ หรือข้อมูลไบนารีที่กำหนดเอง
- เช็คซัม
- ลายนิ้วมือสั้นเพื่อการตรวจสอบข้อผิดพลาดที่รวดเร็ว Base58Check จะเพิ่ม SHA-256 สองเท่าบนเพย์โหลด และใช้ 4 ไบต์แรกเป็นเช็คซัม
- Bitcoin Base58 ตารางอักขระ
- ตารางอักขระ Base58 ที่พบบ่อยที่สุด: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
- Flickr Base58
- Flickr เป็นอีกชุดของการเรียงลำดับที่ใช้โดย Base58 ลำดับเคสจะแตกต่างจากเวอร์ชัน Bitcoin ดังนั้นไบต์เดียวกันจะได้เอาต์พุตต่างกัน
ตารางอักขระที่หน้าปัจจุบันรองรับ
สำหรับชุดไบต์เดียวกัน ตราบใดที่ลำดับตารางอักขระแตกต่างกัน เอาต์พุต Base58 สุดท้ายจะแตกต่างกัน
| ตารางอักขระ | การใช้งานทั่วไป | คำอธิบาย |
|---|---|---|
เมื่อใดที่คุณควรเปลี่ยนไปใช้การดูเลขฐานสิบหก
Base58 ผลลัพธ์ที่ถอดรหัสไม่สามารถอ่านเป็นข้อความได้โดยตรงเสมอไป
| พบเนื้อหา | วิธีที่ดีกว่าในการดู | เหตุผล |
|---|---|---|
Authoritative References
- Bitcoin WikiBitcoin วิกิ - Base58Check การเข้ารหัส
- Wikipediaวิกิพีเดีย - Base58
- GitHubIPFS CID ข้อมูลจำเพาะ
- GitHubBitcoin BIP-0173 Bech32
- เปรียบเทียบข้อความอย่างปลอดภัย
- การแปลงเลขฐานสอง
- รหัสซีซาร์ (Caesar Cipher)
- ตัวแปลงรหัสมอร์ส
- เลขฐานสิบหก (Hex)
- วิดีโอเป็น Base64
- Base64 เป็นวิดีโอ
- แปลงรูปภาพเป็น Base64
- Base64 เป็นรูปภาพ
- แปลงข้อความเป็น Base64
- Base64 เป็นข้อความ
- ตัวตรวจสอบแฮชไฟล์
- แปลงไฟล์เป็น Base64
- Base64 เป็นไฟล์
- แปลงเสียงเป็น Base64
- Base64 เป็นเสียง
- เข้ารหัสและถอดรหัส AES
- เข้ารหัสและถอดรหัส DES
- ตัวเข้ารหัสและถอดรหัส Base32
- Base58 การเข้ารหัสและถอดรหัส
- การเข้ารหัส Base64
- ถอดรหัส Base64
- เปรียบเทียบ Base64
- แยก Base64
- รวม Base64 หลายบรรทัด
- การจัดรูปแบบ Base64
- ตรวจสอบรูปแบบ Base64
- เข้ารหัส Base64 แบบกลุ่ม
- ถอดรหัส Base64 หลายรายการ
- เครื่องมือล้าง Base64
- เครื่องมือจัดการ padding Base64
- สถิติความยาว Base64
- Base64 เป็น Hex
- ตัวแปลง Base64 DataURL
- ตัวแปลง Base64-Hex
- ตัวแปลงรหัส Base85
- สร้างและตรวจสอบ HMAC
- เครื่องมือสร้างคีย์ PBKDF2
- แฮช MD5
- แฮช SHA-256
- แฮช SHA-1
- แฮช SHA512
- ถอดรหัส ตรวจสอบ และสร้าง JWT
- เข้ารหัสและถอดรหัส HTML
- ตัวแปลงรหัส Unicode
- การเข้ารหัส URL
- URL Safe Base64
- MIME Base64
- ทำให้โค้ด Java อ่านยาก (Obfuscate)
- ทำให้โค้ด JS อ่านยาก (Obfuscate)
- ทำให้โค้ด PHP อ่านยาก (Obfuscate)
- ทำให้โค้ด Python อ่านยาก (Obfuscate)