Show More
@@ -9,6 +9,7 b' import struct' | |||||
9 |
|
9 | |||
10 | _b85chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" \ |
|
10 | _b85chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" \ | |
11 | "abcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~" |
|
11 | "abcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~" | |
|
12 | _b85chars2 = [(a + b) for a in _b85chars for b in _b85chars] | |||
12 | _b85dec = {} |
|
13 | _b85dec = {} | |
13 |
|
14 | |||
14 | def _mkb85dec(): |
|
15 | def _mkb85dec(): | |
@@ -22,24 +23,13 b' def b85encode(text, pad=False):' | |||||
22 | if r: |
|
23 | if r: | |
23 | text += '\0' * (4 - r) |
|
24 | text += '\0' * (4 - r) | |
24 | longs = len(text) >> 2 |
|
25 | longs = len(text) >> 2 | |
25 | out = [] |
|
|||
26 | words = struct.unpack('>%dL' % (longs), text) |
|
26 | words = struct.unpack('>%dL' % (longs), text) | |
27 | for word in words: |
|
|||
28 | # unrolling improved speed by 33% |
|
|||
29 | word, r = divmod(word, 85) |
|
|||
30 | e = _b85chars[r] |
|
|||
31 | word, r = divmod(word, 85) |
|
|||
32 | d = _b85chars[r] |
|
|||
33 | word, r = divmod(word, 85) |
|
|||
34 | c = _b85chars[r] |
|
|||
35 | word, r = divmod(word, 85) |
|
|||
36 | b = _b85chars[r] |
|
|||
37 | word, r = divmod(word, 85) |
|
|||
38 | a = _b85chars[r] |
|
|||
39 |
|
27 | |||
40 | out += (a, b, c, d, e) |
|
28 | out = ''.join(_b85chars[(word / 52200625) % 85] + | |
|
29 | _b85chars2[(word / 7225) % 7225] + | |||
|
30 | _b85chars2[word % 7225] | |||
|
31 | for word in words) | |||
41 |
|
32 | |||
42 | out = ''.join(out) |
|
|||
43 | if pad: |
|
33 | if pad: | |
44 | return out |
|
34 | return out | |
45 |
|
35 |
General Comments 0
You need to be logged in to leave comments.
Login now