No he tocado nunca este tema pero...
No deberías primero generar el hash md5, codificarlo con base64 y por último generar la llave con openssl_private_encrypt ?
Mira este tema quizás te interese:
http://publikaccion.blogspot.com/200...tificados.html
Saludos