Имитировать закрытый/открытый ключ в модульном тесте?
В настоящее время у меня есть база кода, которая использует openssl_public_encrypt/openssl_private_decrypt
. Теперь я хотел бы протестировать свои методы шифрования и дешифрования с помощью модульного теста, поскольку они довольно важны.
Чтобы действительно проверить их, я думаю, что хотел бы просто поиздеваться над закрытыми и открытыми ключами. Является ли это жизнеспособным и как бы я мог издеваться над этими ключами, не помещая никакой конфиденциальной информации в свою базу кода?
Конечно, я мог бы обойти публичную/частную часть openssl и высмеять результат этого, но это логика также создает некоторые исключения и т. Д. что я хотел бы проверить.
1 answers
Если у вас установлено и включено расширение OpenSSL PHP, вы можете сгенерировать пару открытых/закрытых ключей с помощью функций OpenSSL:
Openssl_pkey_new, для закрытого ключа с:
$private_key = openssl_pkey_new([
'digest_alg' => 'sha256',
'private_key_bits' => 1024,
'private_key_type' => OPENSSL_KEYTYPE_RSA
]);
Затем передайте закрытый ключ openssl_pkey_get_details, чтобы получить подробную информацию о ключе, включая открытый ключ :
$details = openssl_pkey_get_details($private_key);
$public_key = $details['key'];