base64 คือตัวเข้ารหัส/ตัวถอดรหัส base64 ที่มีประสิทธิภาพ ซึ่งเข้ากันได้กับ atob()
และ btoa()
ซึ่งเขียนด้วย JavaScript อย่างสมบูรณ์ อัลกอริธึมการเข้ารหัสและถอดรหัส base64 ที่ใช้นั้นเป็นไปตามมาตรฐาน RFC 4648 อย่างสมบูรณ์
ผ่านทางเวลา 13.00 น.:
npm install base-64
ในเบราว์เซอร์:
< script src =" base64.js " > </ script >
ใน Narwhal, Node.js และ RingoJS:
var base64 = require ( 'base-64' ) ;
ในแรด:
load ( 'base64.js' ) ;
การใช้ตัวโหลด AMD เช่น RequireJS:
require (
{
'paths' : {
'base64' : 'path/to/base64'
}
} ,
[ 'base64' ] ,
function ( base64 ) {
console . log ( base64 ) ;
}
) ;
base64.version
สตริงที่แสดงถึงหมายเลขเวอร์ชันเชิงความหมาย
base64.encode(input)
ฟังก์ชันนี้รับสตริงไบต์ (พารามิเตอร์ input
) และเข้ารหัสตาม base64 ข้อมูลอินพุตจะต้องอยู่ในรูปของสตริงที่มีเฉพาะอักขระในช่วงตั้งแต่ U+0000 ถึง U+00FF โดยแต่ละตัวแทนไบต์ไบนารี่ที่มีค่า 0x00
ถึง 0xFF
ฟังก์ชัน base64.encode()
ได้รับการออกแบบมาให้เข้ากันได้กับ btoa()
ตามที่อธิบายไว้ในมาตรฐาน HTML
var encodedData = base64 . encode ( input ) ;
หากต้องการเข้ารหัสสตริง Unicode แบบ base64 ให้เข้ารหัสเป็น UTF-8 ก่อน:
var base64 = require ( 'base-64' ) ;
var utf8 = require ( 'utf8' ) ;
var text = 'foo © bar ? baz' ;
var bytes = utf8 . encode ( text ) ;
var encoded = base64 . encode ( bytes ) ;
console . log ( encoded ) ;
// → 'Zm9vIMKpIGJhciDwnYyGIGJheg=='
base64.decode(input)
ฟังก์ชันนี้รับสตริงที่เข้ารหัส base64 (พารามิเตอร์ input
) และถอดรหัส ค่าที่ส่งคืนจะอยู่ในรูปแบบของสตริงที่มีเฉพาะอักขระในช่วงตั้งแต่ U+0000 ถึง U+00FF โดยแต่ละตัวแทนไบต์ไบนารี่ที่มีค่า 0x00
ถึง 0xFF
ฟังก์ชัน base64.decode()
ได้รับการออกแบบมาให้เข้ากันได้กับ atob()
ตามที่อธิบายไว้ในมาตรฐาน HTML
var decodedData = base64 . decode ( encodedData ) ;
หากต้องการถอดรหัส base64 ข้อมูลที่เข้ารหัส UTF-8 กลับเข้าไปในสตริง Unicode ให้ถอดรหัส UTF-8 หลังจากถอดรหัส base64 แล้ว:
var encoded = 'Zm9vIMKpIGJhciDwnYyGIGJheg==' ;
var bytes = base64 . decode ( encoded ) ;
var text = utf8 . decode ( bytes ) ;
console . log ( text ) ;
// → 'foo © bar ? baz'
base64 ได้รับการออกแบบมาเพื่อทำงานในอย่างน้อย Node.js v0.10.0, Narwhal 0.3.2, RingoJS 0.8-0.9, PhantomJS 1.9.0, Rhino 1.7RC4 รวมถึง Chrome, Firefox, Safari, Opera, เวอร์ชันเก่าและใหม่ และอินเตอร์เน็ตเอ็กซ์พลอเรอร์
หลังจากโคลนพื้นที่เก็บข้อมูลนี้แล้ว ให้รัน npm install
เพื่อติดตั้งการขึ้นต่อกันที่จำเป็นสำหรับการพัฒนาและการทดสอบ คุณอาจต้องการติดตั้ง Istanbul ทั่วโลก โดยใช้ npm install istanbul -g
เมื่อเสร็จแล้ว คุณสามารถรันการทดสอบหน่วยใน Node โดยใช้ npm test
หรือ node tests/tests.js
หากต้องการรันการทดสอบใน Rhino, Ringo, Narwhal และเว็บเบราว์เซอร์ด้วย ให้ใช้ grunt test
หากต้องการสร้างรายงานการครอบคลุมโค้ด ให้ใช้ grunt cover
มาเธียส ไบเนนส์ |
base64 มีให้บริการภายใต้ใบอนุญาต MIT