ช่วยแก้ปัญหา

Base64 ไม่ใช่การเข้ารหัสลับ: มันทำอะไรจริง ๆ

Base64 คือการเข้ารหัส ไม่ใช่การเข้ารหัสลับ ทำไมมันไม่ซ่อนรหัสผ่าน ทำไมใหญ่ขึ้น และถอดอย่างไร

คำตอบสั้น

Base64 คือการเข้ารหัส ไม่ใช่การเข้ารหัสลับ มันเปลี่ยนข้อมูลไบนารีเป็นข้อความที่ระบบแบบข้อความเก็บหรือส่งได้

ใครมีข้อความ Base64 โดยปกติถอดได้ ไม่ต้องมีรหัสผ่านหรือกุญแจลับ

อย่าใช้ Base64 ปกป้องรหัสผ่าน คีย์ API โทเค็นเข้าถึง ข้อความส่วนตัว หรือความลับอื่น มันเป็นเครื่องมือแทนค่า ไม่ใช่กลไกความปลอดภัย

ถ้าสตริงดูยุ่ง ไม่ได้แปลว่าถูกเข้ารหัสลับ Base64 แค่เปลี่ยนวิธีเขียนไบต์เป็นข้อความ

Base64 ทำอะไรจริง ๆ?

Base64 เข้ารหัสข้อมูลไบนารีด้วยชุด ASCII จำกัด: A–Z, a–z, 0–9, + และ / อาจมีแพดดิ้ง = เพื่อให้ความยาวผลลัพธ์เป็นพหุคูณของ 4 แพดดิ้งไม่ได้มีเสมอ—อินพุตสั้นอาจใช้ = หนึ่งหรือสองตัว และบางรูปแบบตัดทิ้ง

Hello

Hello

Base64

SGVsbG8=

ถอด SGVsbG8= แล้วได้ Hello อีกครั้ง รอบนั้นไม่ต้องใช้กุญแจ

  • ข้อมูลต้นฉบับ
  • Hello
  • เข้ารหัส Base64
  • SGVsbG8=
  • ถอด Base64
  • Hello
Base64 ย้อนได้ด้วยการถอด ใครมีข้อความโดยปกติทำได้

Base64 กับการเข้ารหัสลับต่างกันอย่างไร?

Base64 สำหรับการแทนค่าและความเข้ากันได้ ไม่ได้ซ่อนเนื้อหา การเข้ารหัสลับสำหรับความลับและใช้วัสดุกุญแจเข้ารหัส การถอด Base64 ไม่ใช่การถอดรหัสลับ ระบบกุญแจสาธารณะก็ใช้กุญแจ พูดว่า “กุญแจเข้ารหัสที่เหมาะสม” ไม่ใช่ “ความลับร่วมหนึ่งอันสำหรับทุกแบบการเข้ารหัสลับ” แฮชเป็นแนวคิดที่สาม: ไดเจสต์ ไม่ใช่การเข้ารหัสที่ย้อนได้

  • การเข้ารหัส
  • ไม่มีกุญแจลับ
  • ใครก็ย้อนได้
  • การเข้ารหัสลับ
  • การป้องกันเชิงเข้ารหัส
  • ต้องมีกุญแจที่ถูกเพื่อถอดรหัสลับ
การเข้ารหัสเปลี่ยนการแทนค่า การเข้ารหัสลับมุ่งให้เนื้อหาลับ

สามงานที่ต่างกัน:

วิธี จุดประสงค์หลัก ต้องมีความลับ
Base64 เข้ารหัสข้อมูลเป็นข้อความ ไม่
การเข้ารหัสลับ ปกป้องความลับ ใช่ / วัสดุกุญแจ
แฮช ไดเจสต์ทางเดียว ไม่มีการถอดรหัสลับ

Base64 ปลอดภัยหรือไม่?

Base64 เองไม่ให้ความลับ ข้อความอาจดูทึบ แต่ไม่ใช่คุณสมบัติความปลอดภัย ตัวถอดปกติคืนไบต์ได้ นั่นไม่ได้แปลว่า “Base64 ไม่ปลอดภัย” ในฐานะเทคโนโลยี มันเป็นการเข้ารหัสปกติ ไม่ใช่กลไกความปลอดภัย ความปลอดภัยขึ้นกับระบบและการควบคุมรอบข้าง

ใช้ Base64 ซ่อนรหัสผ่านหรือคีย์ API ได้ไหม?

ไม่ได้ ในฐานะการป้องกัน การเข้ารหัสรหัสผ่าน คีย์ API โทเค็นเข้าถึง หรือข้อมูลส่วนตัวเป็น Base64 ไม่ได้ปกป้อง ผู้ที่ได้สตริงที่เข้ารหัสโดยปกติถอดได้ ใช้ที่เก็บความลับจริงและการเข้ารหัสลับเมื่อความลับสำคัญ

ทำไมถึงใช้ Base64 ถ้าไม่ใช่การเข้ารหัสลับ?

ระบบที่คาดข้อความมักพาไบนารีดิบไม่ได้ Base64 ใช้แทนไบนารีในรูปแบบข้อความ ฝังทรัพยากรไบนารีเล็ก ส่งไบต์ผ่านช่องทางข้อความอย่างเดียว สร้าง Data URL ปรากฏในบางบริบทอีเมล/MIME และเติมเพย์โหลด API เมื่อสคีมาขอ Base64 API ไม่ใช้ Base64 “เพื่อความปลอดภัย” แต่เพื่อความเข้ากันได้

ทำไม Base64 ทำให้ข้อมูลใหญ่ขึ้น?

Base64 มาตรฐานที่มีแพดดิ้งจับคู่ 3 ไบต์อินพุตเป็น 4 อักขระ ความยาวคือ 4 × ceil(n / 3) โดย n คือจำนวนไบต์อินพุต สามไบต์เป็น 4 อักขระ หกไบต์เป็น 8 ประมาณใหญ่ขึ้น 33%—ราวหนึ่งในสาม—สำหรับเพย์โหลดดิบขนาดใหญ่ อินพุตเล็กอาจดูต่างเพราะแพดดิ้ง: หนึ่งไบต์เป็น QQ== (4 อักขระ) อัญประกาศ JSON คำนำหน้า Data URL การบีบอัด หรือการเข้ารหัสขนส่งเพิ่ม อาจเปลี่ยนขนาดที่เก็บหรือส่งต่อ Base64 ไม่บีบอัดข้อมูล

Base64URL คืออะไร?

Base64URL เป็นรูปแบบของชุดการเข้ารหัสเดียวกันที่ปลอดภัยต่อ URL และชื่อไฟล์—ไม่ใช่การเข้ารหัสลับ + กลายเป็น - / กลายเป็น _ และแพดดิ้งมักถูกตัด เข้ารหัส Base64 เข้ารหัสและถอดได้ทั้ง Base64 มาตรฐานและ Base64URL กติกาแพดดิ้งขึ้นกับข้อกำหนด เครื่องมือนี้ไม่ใช่ตัวถอด JWT

Base64 เข้ารหัสรูปและไฟล์ได้ไหม?

ได้ รูป PDF และไฟล์ไบนารีอื่นแปลงเป็นการแทนค่าข้อความ Base64 ได้ Base64 ไม่บีบอัดไฟล์เหล่านั้น ข้อความที่เข้ารหัสมักใหญ่กว่าไบต์ดิบ

Data URL แบบ Base64 คืออะไร?

Data URL รวมชนิดสื่อ เครื่องหมายการเข้ารหัส และไบต์ที่เข้ารหัสในสตริงเดียวได้:

data:image/png;base64,...

สะดวกสำหรับสินทรัพย์เล็ก ใส่ไฟล์ใหญ่ใน Data URL ไม่ใช่ทางที่ดีเสมอ: สตริงยาวขึ้น หน้าอาจช้าลง มองเป็นข้อแลก ไม่ใช่ค่าเริ่มต้น

การเข้ารหัส การเข้ารหัสลับ และการแฮช

การเข้ารหัส (รวม Base64) สำหรับการแทนค่าและย้อนได้โดยไม่มีความลับ การเข้ารหัสลับสำหรับความลับและใช้วัสดุกุญแจเข้ารหัส แฮชให้ไดเจสต์ที่โดยทั่วไปออกแบบเป็นทางเดียว ความยาวผลลัพธ์ขึ้นกับอัลกอริทึม—SHA-256 กับ SHA-512 ไม่เท่ากัน สร้างแฮช แสดงไดเจสต์เหล่านั้นได้ แต่ไม่เข้ารหัสลับและไม่แทน Base64

ความเข้าใจผิดเรื่อง Base64 ที่พบบ่อย

ถือว่า Base64 คือการเข้ารหัสลับ
มันแค่เปลี่ยนหน้าตาไบต์เมื่อเป็นข้อความ

เก็บความลับเป็น Base64 เปล่า
ค่าที่เข้ารหัสถอดได้โดยใครที่มีมัน

คิดว่า Base64 บีบอัดข้อมูล
ไม่บีบ รูปแบบข้อความมักใหญ่กว่า

ลืมว่าขนาดเพิ่มขึ้น
วางแผนเพิ่มราวหนึ่งในสามสำหรับเพย์โหลดดิบใหญ่

สับสน Base64 กับ Base64URL
ชุดอักขระต่างกัน ตัวถอดอาจปฏิเสธรูปแบบผิด

ถอดด้วยชุดอักขระผิด
Base64 คืนไบต์ ข้อความยังต้องใช้การเข้ารหัสที่ตรงกัน โดยปกติ UTF-8

คิดว่า = ต้องมีเสมอ
แพดดิ้งใช้เมื่อจำเป็น บางสตริงไม่มี

ทำไมข้อความยูนิโค้ดถึงมีปัญหากับ Base64?

Base64 ทำงานกับไบต์ ไม่ใช่อักขระ ข้อความต้องเป็นไบต์ก่อน—โดยปกติ UTF-8 เกาหลี ญี่ปุ่น อาหรับ และอีโมจิต้องการขั้นนั้น btoa() ของเบราว์เซอร์กับสตริงยูนิโค้ดอาจล้มเหลว เข้ารหัส Base64 เข้ารหัสไบต์ UTF-8 จึงไปกลับได้ หากถอดด้วยชุดอักขระผิด Base64 อาจถูกต้องแต่อักษรยังดูผิด

ไม่ใช่กุญแจล็อก

Base64 ไม่ให้ความลับ ใครมีค่าที่เข้ารหัสโดยปกติถอดได้ อย่าถือข้อความที่ดูยุ่งเป็นความลับที่ได้รับการปกป้อง

เข้ารหัสหรือถอด Base64 ในเบราว์เซอร์

NEXNARA เข้ารหัส Base64 แปลงข้อความ UTF-8 และไฟล์ในเครื่อง

คุณเข้ารหัสหรือถอด Base64 มาตรฐานและ Base64URL แปลงไฟล์เป็น Base64 ดิบหรือ Data URL และคืน Base64 หรือ Data URL เป็นไฟล์ดาวน์โหลดได้ อินพุตไม่ถูกต้องถูกปฏิเสธแทนที่จะพัง ช่องว่างถูกละเว้น แพดดิ้งที่ขาดถูกเติม

ไฟล์เกิน 10 MB อาจทำให้แท็บช้า ไฟล์เกิน 32 MB ไม่ประมวลผลในเบราว์เซอร์

การประมวลผล Base64 เองเกิดในเบราว์เซอร์ของคุณ ข้อความหรือไฟล์ไม่ถูกส่งไปเซิร์ฟเวอร์ NEXNARA สำหรับเครื่องมือนี้ โฆษณาและฟีเจอร์ไซต์อื่นยังใช้เครือข่าย นั่นแยกจากการประมวลผล

ต้องเข้ารหัสหรือถอด Base64? เปิด เข้ารหัส Base64 แล้ววางข้อความหรือวางไฟล์

FAQ

Base64 คือการเข้ารหัสลับหรือไม่?

ไม่ Base64 คือการเข้ารหัส มันเปลี่ยนการแทนค่า ไม่ปกป้องความลับ

Base64 ปลอดภัยหรือไม่?

Base64 ไม่ใช่กลไกความปลอดภัย เป็นการเข้ารหัสปกติ ใครมีข้อความโดยปกติถอดได้ ความปลอดภัยขึ้นกับส่วนที่เหลือของระบบ

ถอด Base64 โดยไม่มีรหัสผ่านได้ไหม?

ได้ ตัวถอดมาตรฐานพอ Base64 เองไม่ต้องการรหัสผ่านหรือกุญแจลับ

ทำไม Base64 เพิ่มขนาดไฟล์?

ทุก 3 ไบต์เป็น 4 อักขระใน Base64 มาตรฐานที่มีแพดดิ้ง (ความยาว 4 × ceil(n / 3)) ประมาณเพิ่ม 33% สำหรับเพย์โหลดดิบใหญ่ แพดดิ้งอาจเปลี่ยนอัตราส่วนบนอินพุตจิ๋ว

Base64 กับ Base64URL ต่างกันอย่างไร?

Base64URL ใช้ - และ _ แทน + และ / และมักตัดแพดดิ้ง = ทั้งคู่เป็นการเข้ารหัส เข้ารหัส Base64 รองรับทั้งสองชุดอักขระ

Base64 เข้ารหัสรูปและไฟล์ได้ไหม?

ได้ ผลลัพธ์คือข้อความ ไม่ใช่ไฟล์ที่เล็กลง ใช้โหมดไฟล์ใน เข้ารหัส Base64 สำหรับ Base64 ดิบหรือ Data URL ไฟล์อยู่ในเบราว์เซอร์

ช่วยแก้ปัญหา

ทำไม Base64 ถึงทำให้ไฟล์ใหญ่ขึ้น

Base64 มักทำให้ข้อมูลไบนารีใหญ่ขึ้นประมาณหนึ่งในสาม ดูโครงสร้าง 3 ไบต์เป็น 4 อักขระ แพดดิ้ง ภาระ Data URL และเมื่อใดที่ขนาดเพิ่มนั้นคุ้ม

ช่วยแก้ปัญหา

JPG กับ PNG สำหรับสกรีนช็อต อันไหนเล็กกว่า

เลือก JPG หรือ PNG สำหรับสกรีนช็อตตามเนื้อหา UI และตัวอักษรมักคมกว่าแบบ PNG เฟรมที่มีรูปถ่ายเยอะอาจเล็กกว่าแบบ JPEG

ช่วยแก้ปัญหา

ทำไม JSON.parse ถึงบอก "Unexpected token"

JSON.parse โยน Unexpected token เมื่อข้อความไม่ใช่ JSON ที่ถูกต้อง ไล่หาอัญประกาศเดี่ยว ลูกน้ำท้าย การตอบ HTML และตำแหน่งข้อผิดพลาด

ช่วยแก้ปัญหา

วิธีลดขนาดไฟล์รูปโดยไม่ให้ภาพเบลอ

ลดขนาดไฟล์รูปถ่ายและภาพโดยยังคงคุณภาพที่มองแล้วยอมรับได้ ปรับพิกเซลที่ใหญ่เกินก่อน แล้วบีบอัดพอประมาณ แล้วเลือกฟอร์แมตที่เหมาะ

ช่วยแก้ปัญหา

แปลง Unix Timestamp เป็นวันที่: วินาที มิลลิวินาที และ UTC

แปลง Unix timestamp เป็นวันที่ ดูความต่างวินาทีกับมิลลิวินาที UTC กับเวลาท้องถิ่น ISO 8601 และวิธีแปลงวันที่ย้อนกลับเป็น epoch