Projects tigase _server tigase-utils Issues #4
Base64 decode returns wrong result for data encoded with wrapping (#4)
Closed
Andrzej Wójcik (Tigase) opened 1 decade ago

Base64 class decodes data properly when data is encoded without warpping, but when data is encoded with wrapping it returns worng result.

I tried to decode avatar from vcard using decode method of Base64 class and got result which was bigger than it should and result was not proper image file. I decoded same data using linux command base64 and got proper image file. After some checks it looks there is problem with wrapping as using .replace('\n','').replace('\r') on data before decoding it fixes this issue.

Andrzej Wójcik (Tigase) commented 1 decade ago

It would be also nice if we could choose if we want to encode data with wrapping when using encode method as wrapping is propably recommended.

Bartosz Małkowski commented 1 decade ago

Fixed and improved encoding.

Before:

Buffer 1024 (data size 104857600): encoding 1905 ms; decoding 900 ms; sum 2805 ms

Buffer 2048 (data size 209715200): encoding 3505 ms; decoding 1832 ms; sum 5337 ms

Buffer 5120 (data size 524288000): encoding 9744 ms; decoding 4402 ms; sum 14146 ms

Buffer 10240 (data size 1048576000): encoding 19623 ms; decoding 8889 ms; sum 28512 ms

Test time: 50800ms

After:

Buffer 1024 (data size 104857600): encoding 887 ms; decoding 1325 ms; sum 2212 ms

Buffer 2048 (data size 209715200): encoding 1668 ms; decoding 2587 ms; sum 4255 ms

Buffer 5120 (data size 524288000): encoding 4473 ms; decoding 6703 ms; sum 11176 ms

Buffer 10240 (data size 1048576000): encoding 9013 ms; decoding 13193 ms; sum 22206 ms

Test time: 39849ms

issue 1 of 1
Type
Bug
Priority
Major
Assignee
RedmineID
1265
Issue Votes (0)
Watchers (0)
Reference
tigase/_server/tigase-utils#4
Please wait...
Page is in error, reload to recover