Мой сайт построен в Wordpress, и мы собираем личную информацию, которую мне нужно будет поместить в мою базу данных. Вот мой php до сих пор для ввода:PHP-шифрование с wordpress
//defined in wp-config.php
$key = KEY_ENCRYPT;
function encrypt($text)
{
return trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))));
}
if($_POST){
//POST object placed in variables
$user_domain = $_POST['domain'];
$s_user = $_POST['s-username'];
$s_pass = $_POST['s-password'];
$w_user = $_POST['w-username'];
$w_pass = $_POST['w-password'];
//encrypting data
$encrypted_server_username = encrypt($s_user);
$encrypted_server_password = encrypt($s_pass);
$encrypted_wordpress_username = encrypt($w_user);
$encrypted_wordpress_password = encrypt($w_pass);
//set up array for options table
$user_website_data = array(
'domain'=>$user_domain,
'server_username'=>$encrypted_server_username,
'server_password'=>$encrypted_server_password,
'wordpress_username'=>$encrypted_wordpress_username,
'wordpress_password'=>$encrypted_wordpress_password
);
update_option($user_domain . '_website_data', $user_website_data);
Этот код успешно сохраняет информацию в массиве. Вы даже можете увидеть, что этот код работает, и процесс находится на http://thewpvalet.staging.wpengine.com/sign-up/?plan=basic. Для проверки используйте номер 4242424242424242.
Теперь я пытаюсь реализовать декодирование на бэкэнде админ-области, чтобы я мог искать по домену и подтягивать учетные данные. Это мой код:
if(isset($_POST['domain'])){
function decrypt($text)
{
$key = KEY_ENCRYPT;
return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($text), MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)));
}
$search_domain = $_POST['domain'];
$url_removal = array("http://","www.");
$clean_search_domain = str_replace($url_removal, '', $search_domain);
$user_options = get_option($search_domain.'_website_data');
echo '<strong>Login Information:</strong></br>' .
'Domain:' . $user_options['domain'] . '</br>' .
'Server Username:' . decrypt($user_options['server_username']) . '</br>';
}
Это возвращает mcrypt_decrypt() [function.mcrypt-расшифровывать]: Размер ключа слишком велик для этого алгоритма в/NAS/шр/WWW/постановка/thewpvalet/WP-содержание/плагины/user-info/index.php в строке 43
Любая идея, что я могу делать неправильно здесь?
как долго $ key/KEY_ENCRYPT? –
Христос, вы действительно не должны использовать WordPress, чтобы принимать данные кредитной карты. Вы даже заглянули в чрезвычайно тяжелую задачу, которая соответствует требованиям PCI? Для этого используйте службу, например Stripe. – ceejayoz
ceejayoz, извините, но если вы собираетесь сделать комментарий, пожалуйста, оставайтесь с вопросом. Я использую stripe и используя класс Stripe.js для отправки токенов для информации CC. Теперь это относится к учетным данным и серверам Wordpress, которые мне нужны для миграции. Если у вас нет чего-то приятного или полезного, чтобы сказать, не делая предположения, пожалуйста, не комментируйте. – Enrico