Base64 ãš 16 é²ãšã³ã³ãŒãã£ã³ã°: ã©ã¡ãã䜿ãã¹ããïŒ
Base64 ãš 16 鲿°: æŠèŠ
Base64 ãš 16 鲿°ïŒhexïŒã¯ã©ã¡ãããã€ããª-to-ããã¹ãã®ãšã³ã³ãŒãæ¹åŒã§ãããéåžžã«ç°ãªãç®çã«æé©åãããŠããŸããBase64 ã¯ã³ã³ãã¯ããªããŒã¿è»¢éãåªå ããhex ã¯äººéã®å¯èªæ§ãåªå ããŸããã©ã¡ããéžã¶ãã¯ãåºåãèªãã®ãæ©æ¢°ãªã®ãããããã°ãè¡ãéçºè ãªã®ãã«ãã£ãŠæ±ºãŸããŸãã
ãã®ã¬ã€ãã§ã¯ãäž»èŠãªéã â å¹çæ§ãå¯èªæ§ããŠãŒã¹ã±ãŒã¹ããããŠã©ã¡ããéžã¶ã¹ãã â ã詳ãã説æããŸãã
Hex ãšã³ã³ãŒãã£ã³ã°ã®ä»çµã¿
16 é²ãšã³ã³ãŒãã£ã³ã°ã¯ããã€ããªããŒã¿ã®åãã€ãïŒ8 ãããïŒã 2 ã€ã® 16 鲿åãšããŠè¡šçŸããŸãã1 ã€ã® 16 鲿°å㯠0 ãã 15 ã®å€ãæã€ 4 ãããã衚ããæ°åã® 0-9 ãšæå A-FïŒãŸãã¯å°æåã® a-fïŒã䜿çšããŸãã
Hex ãšã³ã³ãŒãã£ã³ã°ã®äŸ
ãã€ã 255ïŒãã€ã㪠11111111ïŒã¯ãhex ã§ã¯ FF ã«ãªããŸãã
ãã€ã 0ïŒãã€ã㪠00000000ïŒã¯ãhex ã§ã¯ 00 ã«ãªããŸãã
æåå "Hello" ã¯ãhex ã§ã¯ 48656C6C6F ã«ãªããŸãã
Hex ã®å¹çæ§
Hex ã¯ããŒã¿ã 100% æ¡å€§ããŸã â 1 ãã€ãã®å ¥åã 2 ãã€ãã®åºåã«ãªããŸããããã hex ã®æã倧ããªæ¬ ç¹ã§ã: ããŒã¿ã®ãµã€ãºã 2 åã«ãªããŸãã
Hex ã®åŒ·ã¿
- 人éã®å¯èªæ§: Hex ã®åºåã¯ãéçºè ãèŠèŠçã«ã¹ãã£ã³ããã®ã«ååã³ã³ãã¯ãã§ã
- ãã¿ãŒã³èªè: äžè¬çãªãã¡ã€ã«ããããŒãç°¡åã«èå¥ã§ããŸãïŒJPEG ã®å Žåã¯
FF D8 FF E0ãPNG ã®å Žåã¯89 50 4E 47ïŒ - 決å®è«çãªã°ã«ãŒãå: åãã€ãã¯ããã£ã³ã°ãç¹å¥ãªåŠçãªãã§æ£ç¢ºã« 2 ã€ã® 16 鲿åãçæããŸã
- 倧æåå°æåãåºå¥ããªãã³ã³ããã¹ã: 倧æåãšå°æåã® 16 鲿°åã¯äº€æå¯èœã§ã
Base64 ãšã³ã³ãŒãã£ã³ã°ã®ä»çµã¿
Base64 㯠64 æåïŒA-Zãa-zã0-9ã+ã/ïŒã䜿çšããŠãã€ããªããŒã¿ããšã³ã³ãŒãããŸããããŒã¿ã 3 ãã€ãïŒ24 ãããïŒã®ã°ã«ãŒãã§åŠçãã4 ã€ã® Base64 æåã«å€æããŸããå
¥åã®é·ãã 3 ã®åæ°ã§ãªãå Žåã¯ãããã£ã³ã°ïŒ=ïŒã远å ãããŸãã
Base64 ã®å¹çæ§
Base64 ã¯ããŒã¿ãçŽ 33% æ¡å€§ããŸã â 3 ãã€ãã®å ¥åã 4 ãã€ãã®åºåã«ãªããŸããããã«ãããBase64 㯠hex ãããå€§å¹ ã«ã¹ããŒã¹å¹çãé«ããªããŸãã
Base64 ã®åŒ·ã¿
- ã¹ããŒã¹å¹ç: hex ã® 100% ã®ãªãŒããŒãããã«å¯Ÿã㊠33% ã®ãªãŒããŒããã
- ããã¹ããããã³ã«ã®æšæº: JSONãXMLãHTMLãã¡ãŒã«ã«èªç¶ã«é©å
- ããŒã¿ URL ãµããŒã: HTML ãš CSS ãžã®çŽæ¥åã蟌ã¿
- åºç¯ãªãšã³ã·ã¹ãã ãµããŒã: ããããããã°ã©ãã³ã°èšèªã« Base64 ã©ã€ãã©ãªããããŸã
å¹çæ§ã®çŽæ¥æ¯èŒ
ããŸããŸãªå ¥åãµã€ãºã«å¯Ÿãã 2 ã€ã®ãšã³ã³ãŒãã£ã³ã°ã®æ¯èŒã¯æ¬¡ã®ãšããã§ã:
| ãšã³ã³ãŒãã£ã³ã° | 1 KB å ¥å | 1 MB å ¥å | 1 GB å ¥å | |----------|-----------|-----------|-----------| | Hex | 2 KB | 2 MB | 2 GB | | Base64 | 1.37 KB | 1.37 MB | 1.37 GB | | çã®ãã€ã㪠| 1 KB | 1 MB | 1 GB |
å®éã«ã¯ããã㯠Base64 ã hex ãšæ¯èŒããŠåž¯åå¹ ã®ãªãŒããŒããããçŽ 3 åã® 2 ç¯çŽããããšãæå³ããŸããAPI ãã€ããŒããããŒã¿ããŒã¹ã«ã©ã ãªã©ã®å€§èŠæš¡ãªããŒã¿è»¢éã§ã¯ããã®éãã¯éèŠã§ãã
å¯èªæ§ã®æ¯èŒ
Hex ã¯èªã¿ããã; Base64 ã¯èªã¿ã«ãã
Hex ã¯äººéã®å¯èªæ§ã§æç¢ºã«åã£ãŠããŸããéçºè 㯠hex ã®åºåãã¹ãã£ã³ããŠãã¿ãŒã³ãèŠã€ãããã¡ã€ã«ã·ã°ããã£ãèªèããå€ãäžç®ã§èå¥ã§ããŸã:
Hex: FF D8 FF E0 00 10 4A 46 49 46 00 01
(JPEG file header â immediately recognizable)
Base64: /9j/4AAQSkZJRgABAQEASABIAAD/...
(Looks like random characters)
Hex ã¯ä»¥äžã®æšæºçãªè¡šçŸã§ã:
- ã¡ã¢ãªã¢ãã¬ã¹ãšãã³ã
- ã«ã©ãŒã³ãŒãïŒ
#FF5733ã#00A4FFïŒ - æå·åããã·ã¥ãã€ãžã§ã¹ãïŒSHA-256 ã®åºåïŒ
- ãããã¯ãŒã¯ãããã³ã«ã®ãããã°
- ãã€ããªãã¡ã€ã«ã·ã°ããã£ã®æ€æ»
å¯èªæ§ãéèŠã§ãªãå Žå
ãšã³ã³ãŒããããæååã人éãèªãããšã決ããŠãªãå Žå â ããšãã°ãAPI çµç±ã§ããŒã¿ãæž¡ãå ŽåãããŒã¿ããŒã¹ã«ã©ã ã«ä¿åããå ŽåãJWT ããŒã¯ã³ã«åã蟌ãå Žå â Base64 ã®ã³ã³ãã¯ãããæç¢ºãªåè ã«ãªããŸãã
Hex ã䜿çšãã¹ãå Žå
次ã®å Žå㯠hex ã䜿çšããŠãã ãã:
- äœã¬ãã«ã§ãã€ããªããŒã¿ããããã°ãŸãã¯æ€æ»ããå Žå
- CSSããã¶ã€ã³ããŒã«ãã°ã©ãã£ãã¯ã¹ã©ã€ãã©ãªã§è²ã®å€ãæ±ãå Žå
- æå·åããã·ã¥ãã€ãžã§ã¹ãïŒSHAãMD5ïŒã衚瀺ããå Žå
- çµã¿èŸŒã¿ã·ã¹ãã ã§äœæ¥ãããããã¡ãŒã ãŠã§ã¢ãæžãå Žå
- ã¡ã¢ãªã¢ãã¬ã¹ããã·ã³ã³ãŒãã衚çŸããå Žå
- ããŒã¿éãå°ãããã¹ããŒã¹ãåé¡ã«ãªããªãå Žå
- ãšã³ã³ãŒããããåºåã®äººéã«ããå¯èªæ§ãéèŠãªå Žå
Base64 ã䜿çšãã¹ãå Žå
次ã®å Žå㯠Base64 ã䜿çšããŠãã ãã:
- ããã¹ãããŒã¹ã®ãããã³ã«ïŒHTTPãSMTPïŒã§ãã€ããªããŒã¿ãéä¿¡ããå Žå
- JSON ãŸã㯠XML ã® API ãã€ããŒãã«ãã€ããªããŒã¿ãåã蟌ãå Žå
- HTML/CSS ã§ç»åããã©ã³ãããã®ä»ã®ã¢ã»ãããã€ã³ã©ã€ã³åããããã®ããŒã¿ URL ãäœæããå Žå
- ã¡ãŒã«æ·»ä»ããšã³ã³ãŒãããå ŽåïŒMIME æšæºïŒ
- JWT ããŒã¯ã³ãèªèšŒã·ã¹ãã ãæ±ãå Žå
- ã¹ããŒã¹å¹çãéèŠãªå Žåãç¹ã«å€§ããªãã€ããŒãã§
- ããã¹ãããŒã¹ã®ããŒã¿ããŒã¹ã«ã©ã ã«ãã€ããªããŒã¿ãä¿åããå Žå
Hex ãš Base64 ã®éã§å€æã§ããŸããïŒ
ã¯ããã§ããŸããã©ã¡ããåãåºã«ãªããã€ããªããŒã¿ã®å¯éãšã³ã³ãŒãã£ã³ã°ã ããã§ããhex ããã€ãã«ãã³ãŒãã㊠Base64 ãšããŠåãšã³ã³ãŒãããããBase64 ããã€ãã«ãã³ãŒãã㊠hex ãšããŠåãšã³ã³ãŒããããã§ããŸããã©ã¡ãã®å Žåãçã®ãã€ããªããŒã¿ã¯åãã§ãã
// JavaScript: Convert hex to Base64
function hexToBase64(hexString) {
const bytes = new Uint8Array(
hexString.match(/.{1,2}/g).map(byte => parseInt(byte, 16))
);
let binaryString = '';
for (let i = 0; i < bytes.length; i++) {
binaryString += String.fromCharCode(bytes[i]);
}
return btoa(binaryString);
}
hexToBase64('48656C6C6F');
// Output: SGVsbG8= (Base64 encoding of "Hello")
ããã©ãŒãã³ã¹ãšåŠçé床
éåžžã«å€§ããªããŒã¿ã®å Žåãhex ãšã³ã³ãŒãã£ã³ã°ã¯èšç®äžãããã«é«éã§ããåãã€ãã Base64 ãå¿ èŠãšããã°ã«ãŒãåããžãã¯ãªãã§ç¬ç«ã㊠2 ã€ã®æåã«ãããã³ã°ãããããã§ãããã ããææ°ã®ããŒããŠã§ã¢ã§ã¯ãã»ãšãã©ã®å®çšçãªã¯ãŒã¯ããŒãã§ãã®å·®ã¯ç¡èŠã§ããŸãããã倧ããªããã©ãŒãã³ã¹äžã®æžå¿µã¯ããŒã¿ãµã€ãºã§ã â ãããã¯ãŒã¯äžã§ 2 åã®ããŒã¿ãéä¿¡ããããšïŒhex 察 Base64ïŒã¯ãCPU æéã®å·®ãããã¯ããã«å€§ããªåœ±é¿ãäžããŸãã
ãŸãšãã®éžæã¬ã€ã
| èŠçŽ | Hex | Base64 |
|--------|-----|--------|
| ã¹ããŒã¹ãªãŒããŒããã | 100% | ~33% |
| 人éãèªãã | ã¯ã | ããã |
| ãããã°ã«æé© | ã¯ã | ããã |
| ããŒã¿è»¢éã«æé© | ããã | ã¯ã |
| API ã§äžè¬ç | ãŸã | éåžžã«äžè¬ç |
| ãã©ãŠã¶ãµããŒã | æå倿ãå¿
èŠ | çµã¿èŸŒã¿ïŒbtoa/atobïŒ |
| URL ã§ã®äœ¿çš | å®å
š | URL ã»ãŒããªå€çš®ãå¿
èŠ |
Base64 ãšã³ã³ãŒãã£ã³ã°ããªã³ã©ã€ã³ã§è©Šã
ããŒã¿ããšã³ã³ãŒããŸãã¯ãã³ãŒãããå¿ èŠããããŸããïŒç¡æã®ãªã³ã©ã€ã³ Base64 ãšã³ã³ãŒããšãã³ãŒãã䜿çšããŠãããã¹ãããã€ããªãBase64ããã®ä»ã®åœ¢åŒã®éã§å³åº§ã«å€æããŸãããã