You can programmatically generate shadow password hash via:
$ openssl passwd -1 -salt G5cYam5w test.123
$1$G5cYam5w$z0NDUjMRX4xVBKw9Nb6YL0
-1 means md5
G5cYam5w is a random salt (minimum 8)
test.123 is the password
Here is the breakdown:
The first $1 means that it is an md5 hash.
The second $G5cYam5w is a random salt.
The third $z0NDUjMRX4xVBKw9Nb6YL0 is the md5 hash.