• 27-06-2019, 22:13:18
    #1
    Selamlar.
    PHP ile gelen bir verinin Base64 ile şifrelenmiş olup olmadığını nasıl anlayabiliriz?
    Ona göre decode işlemi yaptıracağım gelen veriye
    eğer şifrelenmemiş ise decode işlemi yaptırmayacağım

    Yardımcı olursanız sevinirim , iyi forumlar.
  • 27-06-2019, 22:24:58
    #2
    False positive ihtimali çok yüksek. Base64 decode ettirmeye çalış, fonksiyondan değer dönerse kullanırsın, dönmezse B64 değildir.
  • 27-06-2019, 22:33:37
    #3
    berkantipek adlı üyeden alıntı: mesajı görüntüle
    False positive ihtimali çok yüksek. Base64 decode ettirmeye çalış, fonksiyondan değer dönerse kullanırsın, dönmezse B64 değildir.
    base64 her türlü değer döndürüyor yani o teknik işe yaramaz. Çözüm aşağıda ki örnekte.

    <?php
    $text = "bWVyaGFiYQ==";
    
    $test1 = base64_decode($text);
    $test2 = base64_encode($test1);
    $test3 = base64_decode($test2);
    
    $type1 = mb_detect_encoding($text);
    $type2 = mb_detect_encoding($test3);
    
    if ($type1 == $type2) {
    // Base64 ile kodlanmış
    } else {
    // Base64 ile kodlanmamış
    $text = base64_decode($text);
    echo $text;
    }
  • 27-06-2019, 22:44:27
    #5
    uzmanforum adlı üyeden alıntı: mesajı görüntüle
    base64 her türlü değer döndürüyor yani o teknik işe yaramaz. Çözüm aşağıda ki örnekte.

    <?php
    $text = "bWVyaGFiYQ==";
    
    $test1 = base64_decode($text);
    $test2 = base64_encode($test1);
    $test3 = base64_decode($test2);
    
    $type1 = mb_detect_encoding($text);
    $type2 = mb_detect_encoding($test3);
    
    if ($type1 == $type2) {
    // Base64 ile kodlanmış
    } else {
    // Base64 ile kodlanmamış
    $text = base64_decode($text);
    echo $text;
    }
    Muhtemelen UTF-8 veri bekliyor arkadaş. UTF-8 == mb_detect_encoding -> base64_decode -> $input şeklinde kısa olarak da kullanılabilir.