天天看點

使用混合腳本程式設計來實作的Base64編碼

在近來的工作中,需要在Web頁上制作複雜的邏輯和架構以及背景之間交換資料,特别是和背景交換資料,編碼是個必須考慮的問題。否則可能會因為編碼不同,把腳本的執行給搞得亂七八糟,根本得不到想要的結果。Base64是一種常用而又簡單的編碼,就先從它下手弄弄了。

Base64 Content-Transfer-Encoding is designed to represent arbitrary

sequences of octets in a form that need not be humanly

readable.)。好玩,弄來不被人識别?不識别就不識别嘛,反正程式能之别就行了。

    這個編碼為什麼叫Base64呢?這是應為它的轉換需要依賴一張64個字元的轉換表,叫做The Base64 Alphabet。

Base64以3個位元組為一個轉換機關,把這24bits分為4份,高位補零,再查前面說的那個轉換表,就編碼完畢了。如果被轉換的資料(以byte為機關)不能被3整除,按餘數補"="(pad),當然最多也就隻有兩種可能,不是補一個pad就是補兩個pad。

    例如轉換"部落格園",這三個字的内碼十六進制為:B2A9 BFCD D4B0

    二進制為:10110010 10101001  10111111 11001101  11010100 10110000 

    六個一撥:00101100 00101010  00100110 00111111  00110011 00011101  00010010 00110000,再按新的編碼轉為十進制查表後得到"部落格園"的base64編碼為:"sqm/zdSw"。 

    // 藍色的0是補位的 

使用混合腳本程式設計來實作的Base64編碼

    附1:The Base64 Alphabet

Value

Encoding

A

16

Q

32

g

48

w

1

B

17

R

33

h

49

x

2

C

18

S

34

i

50

y

3

D

19

T

35

j

51

z

4

E

20

U

36

k

52

5

F

21

V

37

l

53

6

G

22

W

38

m

54

7

H

23

X

39

n

55

8

I

24

Y

40

o

56

9

25

Z

41

p

57

10

K

26

a

42

q

58

11

L

27

b

43

r

59

12

M

28

c

44

s

60

13

N

29

d

45

t

61

14

O

30

e

46

u

62

+

15

P

31

f

47

v

63

/

    附2:base64編碼源代碼

使用混合腳本程式設計來實作的Base64編碼

<script language="javascript">

使用混合腳本程式設計來實作的Base64編碼

</script>

使用混合腳本程式設計來實作的Base64編碼

<script language="vbscript">

使用混合腳本程式設計來實作的Base64編碼
使用混合腳本程式設計來實作的Base64編碼
使用混合腳本程式設計來實作的Base64編碼

本文轉自部落格園鳥食軒的部落格,原文連結:http://www.cnblogs.com/birdshome/,如需轉載請自行聯系原部落客。

繼續閱讀