only randomly generate 40 bytes