개발자라면 알아야 할! base64 인코딩 원리

  Рет қаралды 14,552

널널한 개발자 TV

널널한 개발자 TV

Күн бұрын

Пікірлер: 67
@김호준-d2u
@김호준-d2u 2 жыл бұрын
세상이 좋아져서 이런 강의를 집에서 듣네요. 선생님 감사합니다!
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
좋은 평가와 피드백 감사합니다. 즐프하세요. ^^;
@jayshin2511
@jayshin2511 2 жыл бұрын
이렇게 또 올려주시다니 감동이네요. 종종 decode할 일이 있는데 ==값이 왜 생기는지 잘 알 것 같아요! 감사합니다.
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
좋은 평가 감사합니다. 아는 범위에서 ... 다 알려드립니다. 앞으로도 계~~~속! ^^;;;
@k-s-y-
@k-s-y- 11 ай бұрын
6으로 나누어 떨어지지 않으면 어떻게 되는지 처음부터 궁금했는데 마지막에 시원하게 설명해주시네요. 감사합니다
@nullnull_not_eq_null
@nullnull_not_eq_null 11 ай бұрын
영상이 도움이 된 것 같아 다행이네요. :)
@최정규-i7d
@최정규-i7d 2 жыл бұрын
완전 재밌네요 평소에 궁금했는데 굳이 찾아보지는 않았거든요 덕분에 시간가는 줄 모르고 봤어요 양질의 영상 감사합니다
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
좋은 평가와 피드백 감사합니다. 앞으로도 계속 열심히 올리겠습니다. ^^
@jaehoonhan1586
@jaehoonhan1586 2 жыл бұрын
오늘도 양질의 강의였습니다. 많은 도움이 되었습니다. 정말 감사합니다.
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
좋은 평가와 피드백 감사합니다. 주말을 맞아 열공하세요~~~! ^^
@하성호-h4b
@하성호-h4b 2 жыл бұрын
감사합니다.
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
와우~~~! 후원 감사합니다. 오늘 커피는 '하성호'님께 한 잔 얻어 마신 것으로 하겠습니다. ^^
@finleyfinley
@finleyfinley 2 жыл бұрын
notificationcenter를 사용해 화면간 이미지전달을 구현하는 과정에 영상을 봤습니다. 꽤 오래 헤맬뻔했는데 이해가기 쉽게 설명해주셔서 금방해결할 수 있었습니다 정말 감사드려요
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
영상 올린 보람이 있군요. 도움이 됐다니...기쁩니다. 현업 직딩이신가 봅니다. 하시는 일 승승장구 하시기 바랍니다. ^^
@맘마단
@맘마단 2 жыл бұрын
너무 감사합니다 덕분에 출퇴근길이 유익한 시간이 되어요!
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
매우 바람직합니다! 출퇴근 시간을 활용해 전공자 수준으로 업그레이드!! ^^;; 좋은 평가와 피드백 감사합니다.
@kyoungnampark9230
@kyoungnampark9230 2 жыл бұрын
업무에 많은 도움이 됩니다 좋은 강의 감사드립니다
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
좋은 평가 감사합니다. 업무에도 도움된다 하시니...더 기쁘네요. ^^
@kyoungnampark9230
@kyoungnampark9230 Жыл бұрын
몹쓸 기억력... 다시 잘보고갑니다 감사합니다
@jjs8095
@jjs8095 2 жыл бұрын
넘넘 재밌게봤습니다 ^^감사합니다!!!
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
재밌게 보셨다니...기분 좋습니다. 피드백 감사합니다. ^^
@jsjsnnjssk9923
@jsjsnnjssk9923 Жыл бұрын
좋은 강의 감사합니다! :)
@nullnull_not_eq_null
@nullnull_not_eq_null Жыл бұрын
제가 더 감사합니다. :)
@GlobalYoung7
@GlobalYoung7 2 жыл бұрын
감사합니다. ^^ 궁금했던 내용인데 ㅎㅎㅎ
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
도움이 되셨다니 다행입니다. ^^
@junkman9010
@junkman9010 2 жыл бұрын
base64 인코딩하는 것중에 하나가 메일 전송에 쓰이기도 했다. 라고 배웠긴한데. base64 인코딩을 이상하게 이해한 블로그 글(base64[암호방식 or 압축방식]이라는...) 몇개 본적이 있어서 참, 답답한적도 있었는데. 정확하게 말씀해주시네요. base64는 actionscript에서 영상 파일 주고 받 것등 웹데이터 주고받을때 자주 쓰이더라고요.
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
그 블로그 글은 잘못된 것이 확실합니다. 용량이 늘기 때문에 압축이라 할 수 없고 암호화라고는 하지만 규칙에 따라 비인가 사용자 누구도 복호화 가능하므로 보안성이 없습니다. 따라서 기밀성이 보장되지 않기 때문에 암호화라고 하기에는 무리가 있습니다. 참고하시기 바랍니다. 좋은 의견 감사합니다. ^^
@junkman9010
@junkman9010 2 жыл бұрын
@@nullnull_not_eq_null 죄송합니다. '정확하게 말씀해주시네요'를 '정확하게 말씀해주시세요'로 오타났었던걸 지금확인했네요;;
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
죄송할 일 아닙니다. 개발자에게 '오타'는 평생 같이 갈 친구입니다. ^^;;;;
@윤여환-f9k
@윤여환-f9k 2 жыл бұрын
좋은 강의 감사합니다!
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
좋은 댓글 감사합니다!
@_gavykim6503
@_gavykim6503 Жыл бұрын
이해가 쏙되엇습니다!! 감사합니다 ㅠ
@nullnull_not_eq_null
@nullnull_not_eq_null Жыл бұрын
도움이 되셨다니 다행입니다.
@젤리껌
@젤리껌 2 жыл бұрын
모든 분야를 정말 깊이있게 설명해주시네요~!! 오늘도 새로운거 하나 알아가네요~!! 매번 감사드립니다~^^!!
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
어지간한 분야는 다 '아는 척' 가능합니다. ^^;;;; 좋은 평가와 피드백 감사합니다.
@젤리껌
@젤리껌 2 жыл бұрын
@@nullnull_not_eq_null 이렇게가 가능하신분도 국내에서 손꼽을것 같습니다~!! 같은과 졸업했어도 다른분야로 취업하면 이바닥이 워낙 넓다보니 각분야의 기초적인것들도 업무이야기는 서로 못알아듣는경우가 많더라구요~ㅋㅋ
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
지보다 뛰어나신 분들 정말 많습니다. 드러나지 않을 뿐이죠. 좋은 평가 감사합니다. ^^
@user-oohdada
@user-oohdada 2 жыл бұрын
이미지 파일을 Base64 인코딩했을 때 용량이 기존 이미지보다 커지던데, 그 이유가 6비트로 자르는 데에 있었군요
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
네, 맞습니다. 1KB짜리 인코딩하면 1.34KB 된다고 보시면 됩니다. 감사합니다. ^^
@갈가마구
@갈가마구 2 жыл бұрын
웹에 대한 기초 지식이 별로 없어서...base64가 이런거 였네요 ^^ 감사합니다. 😊
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
딱 이 정도만 아셔도 충분합니다. ^^
@박세준-z5g
@박세준-z5g 2 жыл бұрын
재미있어요
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
피드백 감사합니다. ^^
@cacam1234
@cacam1234 2 жыл бұрын
강의 감사합니다. 영상을 봐도 이해가 명확히 되지 않는데요 혹시 base64 인코딩을 하지 않으면 발생할 수 있는 문제가 있나요?
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
반대로 생각하셔야 할 것 같습니다. 언제 왜 base64인코딩을 해야 하는 것인지…^^
@감사합니다-k7u
@감사합니다-k7u 2 жыл бұрын
강의 감사합니다. 같은 내용을 인코딩 했을때 인코딩 값이 달라 질수도 있나요?
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
아니오. 그렇지 않습니다. 인코딩 값이 다르다는 것은 공백문자든 뭐든 보이지 않는 무엇이라도 원본에 추가됐기 때문에 달라진다고 봐야 합니다.
@인수김-j7d
@인수김-j7d 2 жыл бұрын
6bit로 구분지으면 '=' 문자가 최대로 나올 수 있는 수가 5개인건가요? ㅎㅎ 항상 base64로 인코딩하면 '='이 나와서 궁금했는데 오늘 해결하고 가네요 ~ 乃
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
좋은 평가와 피드백 감사합니다. ^^
@NameNotFound404
@NameNotFound404 2 жыл бұрын
base64를 페이로드에 바이너리를 포함시킬 용으로 쓰는건 이해하지만, blob를 HTML에 넣는 용도는 잘 모르겠네요. 대부분의 경우 그냥 MIME타입 잘 맞춰서 GET하면 브라우저가 자동으로 캐싱도 해주고, blob 한개면 HTML에 포함시키는게 오버헤드가 줄거 같긴 한데… 여러개라면 HTML 받고 브라우저가 알아서 동시에 받아주니까요. 뭐 외부와 연결이 차단되어 단 한개의 HTML만 전달되는 인트라넷? 정도로 특수한 경우가 아니라면 말이죠. 아니면 responsive 하게 배치된 매우 작은 사진 수천장을 한 페이지에 담아야 한다거나? 저는 그냥 ASCII로 표현되고 url encode가능한 2의 거듭제곱 수 인코드 방식의 필요해서 생겼다 정도로 이해하고 있습니다 ㅎㅎ
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
의견 감사합니다. 말씀하신 내용이 충분히 일리 있다고 생각합니다. ^^
@jsjsnnjssk9923
@jsjsnnjssk9923 Жыл бұрын
선생님, base64가 jwt 토큰의 인-디코딩 방식이란걸 알게되었는데요. 강의내용 대로라면 원본 문자열를 디코딩해서 끝부분 문자들을 바꾸어도, 앞부분의 문자는 바뀌지 않을 것 같은데 실제 jwt 토큰을 보면 어느 부분의 문자 1개만 바뀌어도 인코딩 문자열이 바뀌게 되는데요... 왜 실제 jwt토큰은 base64방식인데도 저렇게 바뀌는건지 잘 모르겠네요 ㅜ HS256 암호화는 전체코드가 아니라 마지막 부분(시크릿값)만 암호화되는 것 아닌가요?ㅜ
@nullnull_not_eq_null
@nullnull_not_eq_null Жыл бұрын
base64 인/디코딩은 암호화는 아닙니다. 그리고 중간 문자 하나가 바뀌면 해당 정보만 영상을 받고 전체 데이터가 변경되는 것은 아닙니다. 아마도 Hash와 혼동한 것 같습니다. HS256은 HMAC + SHA256조합의 Hash로 알고 있습니다. 해시는 단방향 함수라 디코딩이 불가능합니다. Hash와 base64를 전혀 관련이 없는 것으로 구분해 다시 알아보실 것을 권합니다. 암호기술 관련한 멤버십 영상들이 있습니다. 참고하시기 바랍니다. :)
@jsjsnnjssk9923
@jsjsnnjssk9923 Жыл бұрын
@@nullnull_not_eq_null 제 궁금증에 대해 선생님께서 답변해주시니 너무 든든합니다 ㅠ 우선 저는 이제 게시판만들기 공부 중인 웹개발 초보입니다 ㅎㅎ 말씀하신대로 인코딩과 암호화한 해쉬값은 서로 다름을 인지하고 다시 제 질문을 곱씹어봐아도 아직 제 식견이 낮아서 답변을 보고 제 질문에 답을 내리지 못하겠네요 ㅠㅠ jwt 토큰이 헤더, 페이로드, 시그니처 이렇게 3부분으로 나뉘는걸로 아는데 그 중 시그니처 부분이 HS256 방식으로 암호화되는걸로 알고 있습니다ㅜ 3부분 전체적으로는 base64 방식으로 인-디코딩된다 하더라구요 ㅠ 그런데 jwt 토큰이 이 3부분 중 어느 부분의 단 한글자만 변경해도 전체 값이 바뀌더라구요 ㅠ basa64 방식대로 인코딩되는거라면 바뀌부분과 앞뒤 1글자, 총 3글자만 바뀌어야하는게 아닌가해서요...ㅠ
@karisma1999
@karisma1999 2 жыл бұрын
짧은 강의지만 여러가지를 알게 되었네요. 파워쉘에서 베이스64로 명령어들을 인코딩하는 경우를 봤는데, 그 경우에도 효율성 때문인가요?
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
파워쉘을 사용할 일이 없어서...어떤 경우인지 알려주시면 의견을 드릴 수 있을 것 같습니다. 다만, 느낌적인 느낌으로만 말씀드리자면...효율일 가능성은 매우 낮아보입니다. 아마도 어쩔 수 없는 이유가 있기 때문일 것으로 보이는데...CLI환경에서 바이너리 데이터를 쉘 명령어 파라미터로 넘겨야 할 이유가 있는 것은 아닌지 모르겠네요. ^^
@karisma1999
@karisma1999 2 жыл бұрын
@@nullnull_not_eq_null 답변 감사합니다. 구글링 해보니 대충 2가지라고 하네요. 1. 멜웨어 공격용 2. 특수 문자등이 제대로 동작하게 하기 위해
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
@@karisma1999 1번은...역시나 그렇네요. 정상적인 상황은 아닐 것으로 생각했는데...2번은 웹에서도 꽤 자주 나오는 상황입니다. 확인 감사합니다. ^^
@peteroh4262
@peteroh4262 2 жыл бұрын
영상은 안밧는데요 256진수인 문자열으루파라메터로 사용할경우 쉘이나 브라우져에서 문자열로 표시시 특수문자나 제어코드로인해 제대로 표시가 안되니 화면에 표현이 가능한(예를들어 a-zA-Z 1-0등등 아스키코드에 특정영역일걸로 예상) 문자열들만 사용해서 64진수로 표현하는걸로 생각합니다 크기가 커지니 전송량은 늘어나겟죠
@김기현-n7g
@김기현-n7g 2 жыл бұрын
바이너리를 문자로 표현하기 위함이라면 base256?같은걸 사용해서 1byte씩 매핑했으면 변환도편하고 양도늘지않는데 왜 base64를 선택한걸까요?
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
base256은 무엇일까요? ^^;;; 그렇게 보자면 차라리 URL encoding 방식이 낫지 않나 생각합니다. 애석하게도 제가 만든 규칙은 아니라...^^;;;;
@행신-c2h
@행신-c2h 9 ай бұрын
그래서 정말 base64를 쓰는 이유가 뭔가요? 굳이 6비트씩 끊는 방식으로 인코딩을 하는 이유가 이해가 안되네요... 간단합니다라고 하셨는데... 한마디로 정리 가능하실까요?
@nullnull_not_eq_null
@nullnull_not_eq_null 9 ай бұрын
초기 HTTP 프로토콜이 ASCII 문자열로 개발됐기 때문입니다. :)
@chrollo-want-hisoka
@chrollo-want-hisoka 2 жыл бұрын
html문서에서 문자열만 다루는거면 바이너리데이터를 8비트씩 끊어서 문자열로 보여주면 될거라생각했는데, 꼭 6비트로 끊어서 굳이 패딩을 넣는 이유가 있을까요?
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
영문자로 표현하려면 값이 127이하라야 가능합니다. (ASCII코드) 그래서 일부러 줄인 것이죠. ^^
@topmm4248
@topmm4248 2 жыл бұрын
@@nullnull_not_eq_null 안녕하세요. 저도 6비트 끊어여되는 이유가 궁금했었는데 127이하 (ASCII코드)를 표현하기 위한거라면 7비트로 끊어도 되지 않나요?
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
공백문자 등 몇몇 사용할 수 없는 것들을 제외하다 그리 된 것으로 보입니다.
개발자는 알아야 할 VPN 작동원리
16:30
널널한 개발자 TV
Рет қаралды 33 М.
Docker? 그 전에 Process
19:57
널널한 개발자 TV
Рет қаралды 32 М.
It works #beatbox #tiktok
00:34
BeatboxJCOP
Рет қаралды 41 МЛН
UFC 310 : Рахмонов VS Мачадо Гэрри
05:00
Setanta Sports UFC
Рет қаралды 1,2 МЛН
My scorpion was taken away from me 😢
00:55
TyphoonFast 5
Рет қаралды 2,7 МЛН
문자를 다루는 인코딩 규칙에 대한 모든 것!
44:36
널널한 개발자 TV
Рет қаралды 30 М.
웹 브라우저에 URL 입력하면 일어나는 일 - 인프라 위주
22:14
널널한 개발자 TV
Рет қаралды 52 М.
얼어붙은 개발자 채용 시장 때문에 고민이면 꼭 보세요!
13:19
Blocking I/O와 Non-blocking I/O
15:00
널널한 개발자 TV
Рет қаралды 22 М.
20분 만에 전공자처럼 도커, 가상화 이해하기!
22:31
널널한 개발자 TV
Рет қаралды 92 М.
개발자 취업 전략, 지금까지 듣지 못한 방법입니다
17:45
Process와 Thread의 차이
19:33
널널한 개발자 TV
Рет қаралды 76 М.
가상메모리가 없었던 MS-DOS의 치명적 문제
10:12
널널한 개발자 TV
Рет қаралды 8 М.
N사 면접관이 생각하는 "이런 개발자는 안 뽑아요"
24:44
JSCODE 박재성
Рет қаралды 133 М.
가비지 컬렉터의 원리? 과연 그것만 물은 걸까요?
18:18
널널한 개발자 TV
Рет қаралды 20 М.