Is it possible to calculate sha256 hashes in the browser using the user's video card, eg. by using WebGL or Flash?
This should be possible. Given an implementation of SHA as a fragment shader, you should be able to read back the results using readPixels:
Read Back Pixels [5.13.12] Pixels in the current framebuffer can be read back into an ArrayBufferView object.
void readPixels(int x, int y, long width, long height, enum format, enum type, Object pixels)
format: RGBA
type: UNSIGNED_BYTE
From the Kronos WebGL reference card (PDF)
For extra credit, do it all in an offscreen framebuffer, as described here.