Java中的BASE64
located in rt.jar...
public class sun.misc.BASE64Encoder extends sun.misc.CharacterEncoder{ //.. } public class sun.misc.BASE64Decoder extends sun.misc.CharacterDecoder{ //.. }
base64:The Base64-Transfer-Encoding is designed to represent arbitrary sequence of octets in form that need not be humanly readable.
特点:算法复杂度小,效率高。
“base64”名称的来历:
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 |
举个例子:转字符串"abcde"
01100001——97
01100010——98
01100011——99
01100100——100
01100101——101
0110000101100010011000110110001101100101
011000——24
010110——22
001001——9
100011——35
011001——25
000110——6
010100——20
即:"YWJjZGU",但5%2==2,所以结果为"YWJjZGU="