More portable digest()