123 lines
3.1 KiB
PHP
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;
|
|
}
|
|
|
|
|
|
|
|
?>
|