티스토리 뷰


발생일: 2013.04.19 

문제:
어떤 면접에 base64 인코더를 구현하라는 문제가 나왔다는 얘기를 듣고,
자바스크립트로 구현하는 걸 찾아봤다.


해결책:


아래 링크의 우리말 설명 굉장히 좋다.


코드 예제. 아주 좋다.


구현해본 코드

function b64(s) {
  var key = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';

  var i = 0, len = s.length,
      c1, c2, c3,
      e1, e2, e3, e4,
      result = [];
 
  while (i < len) {
    c1 = s.charCodeAt(i++);
    c2 = s.charCodeAt(i++);
    c3 = s.charCodeAt(i++);
   
    e1 = c1 >> 2;
    e2 = ((c1 & 3) << 4) | (c2 >> 4);
    e3 = ((c2 & 15) << 2) | (c3 >> 6);
    e4 = c3 & 63;
   
    if (isNaN(c2)) {
      e3 = e4 = 64;
    } else if (isNaN(c3)) {
      e4 = 64;
    }
   
    result.push(e1, e2, e3, e4);
  }
 
  return result.map(function (e) { return key.charAt(e); }).join('');
}

console.log(b64('abce'));



반응형
댓글
공지사항