Задать вопрос
@rammsteinik

Не пойму, от чего Uninitialized string offset?

Есть функция шифровки/расшифровки строки по ключу, при расшифровке пишет предупреждения:

Notice:  Uninitialized string offset: 63 in [...][...] on line 18
Notice:  Uninitialized string offset: 63 in [...][...] on line 19

Это строки:

$tmp = md5(md5($key.$strofsym[$x-1]).$key);
$encoded = str_replace($tmp[3].$tmp[6].$tmp[1].$tmp[2], $strofsym[$x-1], $encoded);

Сами функции:

function encode($unencoded,$key){ //Шифрование
$string=base64_encode($unencoded);
$newstr = '';
$arr=array();
$x=0;
while ($x++< strlen($string)) {
$arr[$x-1] = md5(md5($key.$string[$x-1]).$key);
$newstr = $newstr.$arr[$x-1][3].$arr[$x-1][6].$arr[$x-1][1].$arr[$x-1][2];
}
return $newstr;
}

function decode($encoded, $key){ //Расшифровка
$strofsym='qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM=';
$x=0;
while ($x++<= strlen($strofsym)) {
$tmp = md5(md5($key.$strofsym[$x-1]).$key);
$encoded = str_replace($tmp[3].$tmp[6].$tmp[1].$tmp[2], $strofsym[$x-1], $encoded);
}
return base64_decode($encoded);
}

echo decode('70072bbbd45b597a700751f437683768','z');

Не критично, но бесит
  • Вопрос задан
  • 5919 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@rammsteinik Автор вопроса
Заменить <= на
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
zkrvndm
@zkrvndm
Архитектор решений
function encode($unencoded,$key) {

    $string = base64_encode($unencoded);
    
    $arr = array();
    $x = 0;
    $newstr = '';
    
    while ($x++< strlen($string)) {
        $arr[$x-1] = md5(md5($key.$string[$x-1]).$key);
        $newstr = $newstr.$arr[$x-1][3].$arr[$x-1][6].$arr[$x-1][1].$arr[$x-1][2];
    }
    
    return $newstr;
}

function decode($encoded, $key){

    $strofsym = "qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM=";
    $x = 0;
    
    while ($x <= strlen($strofsym)) {
        $tmp = md5(md5($key.$strofsym[$x-1]).$key);
        $encoded = str_replace($tmp[3].$tmp[6].$tmp[1].$tmp[2], $strofsym[$x-1], $encoded);
        $x++;
    }
    
    return base64_decode($encoded);
}
Ответ написан
webog
@webog
Начинающий PHP Developer
Решили проблему? Как?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы