1KA_F2F/utils/1kaUtils/phpMailer_fix_passwords.php
2020-08-14 13:36:36 +02:00

123 lines
3.1 KiB
PHP

<?php
/**
*
* V DELU...
*
* popravi gesla nastavljena za smtp streznike za posiljanje emailov
* prej se je uporabljalo mcrypt za kriptiranje gesel, po novem se uporablja openssl
*
*/
include_once('../../function.php');
include_once('../../vendor/autoload.php');
if(isset($_GET['anketa']) && $_GET['anketa'] > 0){
$anketa = $_GET['anketa'];
}
else{
"Survey ID required!";
die();
}
if(isset($_GET['min']) && isset($_GET['max'])){
$min = $_GET['min'];
$max = $_GET['max'];
}
else{
"Survey ID min and max required!";
die();
}
// Loop cez nastavitve email streznika za vse ankete
$sql = sisplet_query("SELECT sid, value FROM srv_survey_misc WHERE sid BETWEEN ".$min." AND ".$max." AND what='send_mail_config'");
while($row = mysqli_fetch_array($sql)){
// Array nastavitev streznika
$settings = unserialize($row['value']);
// ID Ankete
$sid = $row['sid'];
// Iz array-a dobimo password ce obstaja za smtp mode
if(isset($settings['smtp']['SMTPPassword'])){
// Dobimo pass iz nastavitev
$pass_original = $settings['smtp']['SMTPPassword'];
// Prekodiramo password
$pass_new = recodePassword($pass_original);
// Zapisemo nov pass v nastavitve
$settings['smtp']['SMTPPassword'] = $pass_new;
}
// Iz array-a dobimo password ce obstaja za google mode
if(isset($settings['google']['SMTPPassword'])){
// Dobimo pass iz nastavitev
$pass_original = $settings['google']['SMTPPassword'];
// Prekodiramo password
$pass_new = recodePassword($pass_original);
// Zapisemo nov pass v nastavitve
$settings['google']['SMTPPassword'] = $pass_new;
}
// Nove nastavitve pretvorimo v string
$settings_new = serialize($settings);
// Shranimo nazaj nove nastavitve s popravljenimi gesli
$sqlUpdate = sisplet_query("UPDATE srv_survey_misc SET value='".$settings_new."' WHERE sid='".$sid."'");
/*echo 'OLD: '.$row['value'];
echo '<br />NEW: '.$settings_new;
echo '<br /><br />';*/
}
// Prejmemo kriptirano geslo, ga dekriptiramo z mcrypt in nazaj kriptiramo z openssl
function recodePassword($pass_original){
$password_hash_key = '#&_ww.9$.1ka#"%o';
// Dekriptiranje
$iv_size = mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$decryptedPassword = mcrypt_decrypt(MCRYPT_CAST_256, $password_hash_key , $pass_original, MCRYPT_MODE_ECB, $iv);
// Kriptiranje
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
$encryptedPassword = openssl_encrypt($decryptedPassword, 'AES-256-CBC', $password_hash_key, 0, $iv);
$pass_new = base64_encode($encryptedPassword . '::' . $iv);
/*echo 'PASS OLD: '.$pass_original.'<br>';
echo 'PASS OLD DECODED: '.$decryptedPassword.'<br>';
echo 'PASS NEW: '.$pass_new.'<br>';
// se testno decode na nov nacin
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
list($encrypted_data, $iv) = explode('::', base64_decode($pass_new), 2);
$decryptedPassword2 = openssl_decrypt($encrypted_data, 'AES-256-CBC', $password_hash_key, 0, $iv);
echo 'PASS NEW DECODED: '.$decryptedPassword2.'<br>';
echo '<br><br>';*/
return $pass_new;
}
?>