code revise only, no functional change
SHA1 hash like git hash-object