base64¼Ó½âÃÜרÓù¤¾ß£¬±ã½Ý¼Ó¡¢ÆÆÒ룬ÓÃÒÔÆÆÒëµçÐÅè·Ç³£Óû§¼ÓÃܵǽÃÜÂ룬Æä¼ÓÃÜËã·¨ÊÇ Base64¡£
ά»¤Ë½ÈËÐÅÏ¢.
Base64±àÂ룺
Base64ÊÇ»¥ÁªÍøÉÏ×î¶à¼ûµÄÓÃÒÔ´«ËÍ8Bit×Ö½ÚÊý±àÂëµÄ±àÂë·½·¨Ö®Ò»£¬´ó»ï¶ù¿ÉÒÔ²éѯRFC2045¡«RFC2049£¬ÉϱßÓÐMIMEµÄ¾ßÌå±ê×¼¡£Base64±àÂë¿ÉÓÃÒÔÔÚHTTP×ÔÈ»»·¾³Ï´«Ëͽϳ¤µÄ±êÖ¾ÐÅÏ¢ÄÚÈÝ¡£±ÈÈ磬ÔÚJava PersistenceϵͳÈí¼þHibernateÖУ¬¾ÍÑ¡ÓÃÁËBase64À´½«Ò»¸ö½Ï³¤µÄΨһ±êÖ¾·û£¨Ò»°ãΪ128-bitµÄUUID£©±àÂëΪһ¸ö×Ö·û´®£¬×÷ΪHTTP±í¸ñºÍHTTP GET URLÖеÄÖ÷Òª²ÎÊý¡£ÔÚ±ðµÄÓ¦ÓÃÈí¼þÖУ¬Ò²¾³£¿ÉÒ԰Ѷþ½øÖÆÊý¾ÝÐÅÏ¢±àÂëΪºÏÊʷŵ½URL£¨°üº¬Ñڲرí¸ñÓò£©Öеķ½Ê½¡£Õâʱ£¬Ñ¡ÓÃBase64±àÂë²»µ«½ÏΪ¼ò½àÃ÷ÁË£¬Óë´ËͬʱҲ¾ß±¸²»Ò׶ÁÐÔ£¬¼´Ëù±àÂëµÄÊý¾ÝÐÅÏ¢²»ÈÝÒ×±»±ðÈËÓÃÑÛ¾¦ËùÁ¢¼´¼ûµ½¡£
RFC2045»¹ÒªÇóÿÅÅλ76¸ö×Ö·û£¬Ã¿ÅŽáβÐè¼ÓÉÏÒ»¸ö»Ø³µ¼ü»Ø³µ·û£¬¾ÍËãÊÇ×îÖÕÒ»Ðв»×ã76¸ö×Ö·û£¬Ò²ÐèÒª¼Ó»Ø³µ·û¡£
Íê³É»ù±¾ÔÀí£º
Base64ÊÂʵÉÏÊǶԶþ½øÖÆÂë×öÅÅÐò±ä»»Êµ¼Ê²Ù×÷
1.ÿ3¸ö8λ¶þ½øÖÆÂëλһ×飬±ä»»Îª4¸ö6λ¶þ½øÖÆÂëΪһ×飨²»¹»6λʱӰÏìÁ¦²¹0£©¡£3¸ö8λ¶þ½øÖÆÂëºÍ4¸ö6λ¶þ½øÖÆÂ볤¶ÌÈ«ÊÇ24λ¡£
2.¶ÔµÃµ½µÄ4¸ö6λ¶þ½øÖÆÂ벹λ£¬Ã¿Ò»¸ö6λ¶þ½øÖÆÂë¼ÓÉÏÁ©Î»ÉÏλ0£¬¹¹³É4¸ö8λ¶þ½øÖÆÂë¡£
3.½«µÃµ½µÄ4¸ö8λ¶þ½øÖÆÂë±ä»»Îª4¸öÊ®½øÖÆÂë¡£
4.½«µÃµ½µÄÊ®½øÖÆÂë±ä»»ÎªBase64×Ö·û±í¸ñÖÐÏàÆ¥ÅäµÄ×Ö·û¡£
×Ö·û´®¡°A¡±£¬¿ªÕ¹Base64±àÂ룬ÈçÏÂËùʾËùÏÔʾ£º
×Ö·ûA
ASCIIÂë 65
¶þ½øÖÆÂë01000001
4¸ö6λ¶þ½øÖÆÂë 010000010000
4¸ö8λ¶þ½øÖÆÂë 0001000000010000
Ê®½øÖÆÂë1616
×Ö·û±íͶÉäÂëQQ==
×Ö·û´®¡°A¡±Í¨¹ýBase64±àÂëºó»ñµÃ×Ö·û´®¡°QQ==¡±¡£
½Y¹û·¢ÉúÁË2¸öµÈÓںš£ºÜÏÔ¶øÒ×¼û£¬µ±È«ÎĵĶþ½øÖÆÂ볤¶Ì²»¹»24룬×îºó±ä»»ÎªÊ®½øÖÆʱҲ²»¹»4ÏÕâʱºò¾Í±ØÐëÓõÈÓںŲ¹Î»¡£
½«Base64±àÂëºóµÄ×Ö·û´®½Ï¶à»á³öÏÖ2¸öµÈÓںţ¬ÕâʱºòÓÉÓÚ£º
±»³ýÊý = È«ÎÄ×Ö½Ú MOD 3¡£
×Ö·û´®¡°ÃÜ¡±£¬¶ÔÆäÓ¦ÓÃUTF-8±àÂëÖ±µ½Byte¶þάÊý×é{-27£¬-81£¬-122}£¬
×Ö·û ÃÜ
UTF-8±àÂë -27-81 -122
¶þ½øÖÆÂë 1110010110101111 10000110
4¸ö6λ¶þ½øÖÆÂë 111001011010 111110 000110
4¸ö8λ¶þ½øÖÆÂë 0011100100011010 00111110 00000110
Ê®½øÖÆÂë57 26 626
×Ö·û±íͶÉäÂë 5 a G
×Ö·û´®¡°ÃÜ¡±Í¨¹ýBase64±àÂëºó»ñµÃ×Ö·û´®¡°5a G¡±¡£
Ò»ÀÀ±í£º
Êý¾Ý¿âË÷Òý ÏàÆ¥Åä×Ö·û Êý¾Ý¿âË÷Òý ÏàÆ¥Åä×Ö·û Êý¾Ý¿âË÷Òý ÏàÆ¥Åä×Ö·û Êý¾Ý¿âË÷Òý ÏàÆ¥Åä×Ö·û
0 A 17 R 34 i 51 z
1 B 18 S 35 j 52 0
2 C 19 T 36 k 53 1
3 D 20 U 37 l 54 2
4 E 21 V 38 m 55 3
5 F 22 W 39 n 56 4
6 G 23 X 40 o 57 5
7 H 24 Y 41 p 58 6
8 I 25 Z 42 q 59 7
9 J 26 a 43 r 60 8
10 K 27 b 44 s 61 9
11 L 28 c 45 t 62
12 M 29 d 46 u 63 /
13 N 30 e 47 v
14 O 31 f 48 w
15 P 32 g 49 x
16 Q 33 h 50 y
¾¡¹ÜÏÖÔÚÓкܶàÊäÈë·¨£¬ÎªÁËÌá¸ß¹¤×÷»òѧϰµÄЧÂÊ£¬Ðí¶àÈËÈÔȻѡÔñѧϰÎå±Ê´ò×Ö¡£ÕýÈçÓÐЩµ¥´Ê²»ÄÜÓÃÆ´ÒôÆ´³öÀ´Ò»Ñù£¬Îå±Ê´ò×ÖÒ²»áÓöµ½Ðí¶à²»³£¼ûµÄµ¥´Ê£¬¶ø²»½«ËüÃDz𿪡£È»¶ø£¬´ËʱÐèÒªÎå¸ö±Ê»µÄ±àÂë²éѯÈí¼þ¡£ÄÄÒ»¸ö×îÊʺÏÓëÕâô¶àµÄ´úÂë²éѯÈí¼þÒ»ÆðʹÓ㿽øÀ´°ÑËüÌô³öÀ´£¡¶àÌØÈí¼þרÌâΪÄúÌṩÎå±Ê±àÂë²éѯÈí¼þ,Îå±Ê²éѯÏÂÔØ,ÊÖ»úÎå±Ê·´²éÈí¼þ¡£¶àÌØÈí¼þÕ¾Ö»ÌṩÂÌÉ«¡¢ÎÞ¶¾¡¢ÎÞ²å¼þ¡¢ÎÞľÂíµÄ´¿ÂÌÉ«Èí¼þÏÂÔØ¡£
´úÂëת»»¿ÉÒÔת»»Êý×ÖÎļþ£¬Ê¹ÎļþµÄÄÚÈÝ¿ÉÒÔÔÚ²»Í¬µÄ²¥·ÅÉ豸ÉÏÕý³£²¥·Å¡£±àÂëת»»Æ÷µÄÖ÷Òª¹¦ÄÜÀàËÆÓÚ·ÒëÆ÷£¬Ëü¿ÉÒÔ½«Îļþת»»Îª×îÖÕÓû§ËùÐèµÄ¸ñʽ¡£×ª»»»ùÓÚ¸´ÔӵIJÙ×÷£¬ÐèÒª´óÁ¿µÄ³ÌÐò×ÊÔ´¡£´Ëʱ£¬ÎÒÃÇÐèÒªÒ»¸öÓÐÓõıàÂëת»»¹¤¾ß£¬À´¿´¿´Ð¡±àÍƼöµÄһЩÓÐÓõıàÂëת»»¹¤¾ß¡£¶àÌØÈí¼þרÌâΪÄúÌṩ±àÂëת»»¹¤¾ß,utf8±àÂëת»»,asciiÔÚÏßת»»¹¤¾ß¡£¶àÌØÈí¼þÕ¾Ö»ÌṩÂÌÉ«¡¢ÎÞ¶¾¡¢ÎÞ²å¼þ¡¢ÎÞľÂíµÄ´¿ÂÌÉ«Èí¼þÏÂÔØ¡£
¶àÌØÈí¼þרÌâΪÄúÌṩ¹¤¾ß,¹¤¾ßÏÂÔØ,ÃÜÂ빤¾ß;°²×¿Æ»¹û°æÈí¼þappÒ»Ó¦¾ãÈ«¡£¶àÌØÈí¼þÕ¾Ö»ÌṩÂÌÉ«¡¢ÎÞ¶¾¡¢ÎÞ²å¼þ¡¢ÎÞľÂíµÄ´¿ÂÌÉ«¹¤¾ßÏÂÔØ
¹¤¾ßÀàÓ¦Óã¬Äĸö¹¤¾ßÀàÓ¦Ó㬹¤¾ßÓ¦Óá£ÏÖÔÚÖÇÄÜÊÖ»ú±äµÃÔ½À´Ô½Ç¿´ó¡£ÎÒÃDz»½ö¿ÉÒÔÓÃËüÃÇ´òµç»°¡¢Ìý¸èÇú¡¢¿´µçÓ°£¬»¹¿ÉÒÔͨ¹ýһЩӦÓóÌÐò°ïÖúÎÒÃÇʵÏÖÏÖʵ¡£ÊÖ»ú¹¤¾ßÓкܶàÓ¦Óã¬ÈçÄÖÖÓ¡¢¼Çʱ¾¡¢Î÷ºìÊÁЧÂÊ·¨¡¢Æ½ºâ³ß¡¢²âÁ¿³ßµÈ¡£Í¨¹ýÊÖ»úµÄÌØÊ⹦ÄÜ£¬ÊµÏÖÁËһЩ²âÁ¿ÒªÇó¡£ÄÇôʲôÊÇÊÖ¶¯¹¤¾ßÓ¦ÓóÌÐòÄØ£¿½ñÌ죬¶àÌØ-Æ»¹û±à¼Æ÷ÒѾ¼¯³ÉÁËһϵÁÐÓÃÓÚÒƶ¯µç»°¹¤¾ßµÄÓÐÓÃÓ¦ÓóÌÐò¡£ÈÃÎÒÃÇ¿´¿´Õâ¸öÁбíÖÐÊÇ·ñÓÐÄúÐèÒªµÄÓ¦ÓóÌÐò¡£¶àÌØÊÖÓÎרÌâΪÄúÌṩ¹¤¾ßÀàapp,¹¤¾ßÀàappÅÅÐаñ,ºÃÓõŤ¾ßÀàapp¡£¶àÌØÈí¼þÕ¾Ö»ÌṩÂÌÉ«¡¢ÎÞ¶¾¡¢ÎÞ²å¼þ¡¢
Unicode±àÂëת»»Æ÷ÊÇÒ»¿îÊ®·ÖºÃÓõÄÎı¾ÓëunicodeÂëת»»Ð¡¹¤¾ß¡£Unicodeת»»Æ÷£¬ÊÇÓÃÒÔ½«Îı¾ºÍUnicode±àÂëÏ໥֮¼äת»»µÄרÓù¤¾ß£¬¿ÉÒÔѸËٵؽ«¶þÕß»¥Ïàת»»£¬ÓÐÀûÓÚ¿ÆѧÑо¿Îĵµ±àÂ뷽ʽ¡£Ò»°ãµÄ¿Í»§½«»á²»ÓÃunicodeת»»Æ÷¸ÃÀàרÓù¤¾ß£¬¿ÉÊÇÔÚä¯ÀÀһЩUnicodeÍøַʱ½«»á±ØÐ뿪չ±àÂëת»»£¬ÕâʱÄܹ»¿ªÕ¹É趨¡£ÔÚµçÄÔä¯ÀÀÆ÷µÄÀ³µ¥Öеãһϡ°²éѯ¡±-¡°±àÂëÉ趨¡±£¬Ñ¡¶¨¡°UTF-8(Unicode)¡±ÐÂÏîÄ¿¾Í¿ÉÒÔ½«µ±½ñÍøÒ³Ò³ÃæÒÔUnicode±àÂ뷽ʽչÏÖ¡£Unicode±àÂëת»»Æ÷¹Ø¼ü×÷ÓÃÊÇÄܹ»±ã½Ý²éÑ°±êʶ·ûµÄunicodeÂ룬»ò²éÑ°unicodeÂëÏàÆ¥ÅäµÄ±êʶ·û¡£Äܹ»½«Îı¾´óÅúÁ¿×ª»»ÎªunicodeÂ룬Îı¾ÓëunicodeÂëת»»Ð¡¹¤¾ßÊÇÒ»¿îÂÌÉ«Ãâ·ÑµÄÈí¼þ¡£