Я долго искал этот ответ, но, похоже, его там нет. У меня есть сайт Wordpress (последняя версия) с учетными записями пользователей. У меня есть программа на C ++, которую пользователи могут использовать. Программа на C ++ должна аутентифицировать пользователей и запрашивать данные о них на некоторых веб-сайтах. Насколько я могу судить, это означает, что программа C ++ должна получить чистый пароль, зашифровать его тем же алгоритмом, что и Wordpress, а затем сравнить зашифрованный пароль из таблицы Wordpress. Я вижу таблицу пользователей Wordpress и зашифрованные пароли там. Я также экспериментировал с этим простым сценарием, чтобы убедиться, что это алгоритм PHP, который может выполнять точное шифрование WordPress:
#!/usr/bin/php
<?php
include 'wp-includes/pluggable.php';
require_once 'wp-includes/class-phpass.php';
$wp_hasher = new PasswordHash(8, TRUE);
$plain_password = $argv[1];
$password_hashed = $argv[2];
if($wp_hasher->CheckPassword($plain_password, $password_hashed)) {
echo "yes\n";
} else {
echo "no\n";
}
?>
Я не могу выполнить системный вызов из C ++ для запуска этого сценария php, потому что приложение находится на клиентском компьютере, который может не иметь php. Итак, в основном ... как мне написать это на C ++, используя какую-нибудь уважаемую стороннюю библиотеку шифрования? Я использовал openssl и раньше, но все будет, если это кроссплатформенный (Mac / Windows). После того, как у меня есть зашифрованный пароль в C ++, планируется URL-адрес php-скрипта и публикация пользователя и зашифрованного пароля. Я не могу позволить, чтобы этот сценарий выполнял шифрование, потому что тогда мне пришлось бы передавать чистый пароль через Интернет.