הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   שאלה - האם ניתן לדעת בוודאות? base64. (https://hosts.co.il/forums/showthread.php?t=69798)

בניה 28-11-08 12:15

ציטוט:

נכתב במקור על ידי vadimg88 (פרסם 684236)
זה לא הפתרון אבל, אתה יכול לקבל סטרינג שהוא דומה בידיוק לBASE64 ואז תבצע עליו DECODE זה יבצע אותו אבל זה לא אומר שהוא היה ENCODED מלכחתחילה.

קשה לי להאמין שהוא יגיע לכזה מצב,המבנה של ההצפנה הזו מאוד עדין.

vadimg88 28-11-08 17:55

עדיין זה לא משהו שאפשר להסתמך עליו ב 100%. זה כבר לשיקולו של פותח הנושא.

intercooler3819 28-11-08 20:36

גם לMD5 יכולות להיות 2 קומבינציות שנותנות את אותו MD5

בכל מקרה
אתה יכול לעשות DECODE, במידה ויש לך FALSE אז סגרנו עניין
במידה ויש לך TRUE
קח את הערך אחרי הDECODE, תעשה לו ENCODE ותשווא עם הערך המקורי

בהצלחה

Shon12 29-11-08 11:54

ציטוט:

נכתב במקור על ידי nitsanbn (פרסם 684366)
גם לMD5 יכולות להיות 2 קומבינציות שנותנות את אותו MD5

בכל מקרה
אתה יכול לעשות DECODE, במידה ויש לך FALSE אז סגרנו עניין
במידה ויש לך TRUE
קח את הערך אחרי הDECODE, תעשה לו ENCODE ותשווא עם הערך המקורי

בהצלחה

לא כל-כך הבנתי. אם איזה ערך להשוות אותו?

Grenade 29-11-08 17:18

ציטוט:

נכתב במקור על ידי nitsanbn (פרסם 684366)
גם לMD5 יכולות להיות 2 קומבינציות שנותנות את אותו MD5

בכל מקרה
אתה יכול לעשות DECODE, במידה ויש לך FALSE אז סגרנו עניין
במידה ויש לך TRUE
קח את הערך אחרי הDECODE, תעשה לו ENCODE ותשווא עם הערך המקורי

בהצלחה

אתה טועה

intercooler3819 29-11-08 17:51

לומר אתה טועה גם אני יכול
איפה אני טועה

Rom 29-11-08 18:48

PHP קוד:

function is_base64_encoded($data) {
    if (
preg_match('%^[a-zA-Z0-9/+]*={0,2}$%'$data)) {
            return 
TRUE;
    } else {
            return 
FALSE;
    }


תשתמש בפונקציה הזאת, היא פורסמה בPHP.net

DvirCohen 29-11-08 20:05

ציטוט:

נכתב במקור על ידי Rom (פרסם 684535)
PHP קוד:

function is_base64_encoded($data) {
    if (
preg_match('%^[a-zA-Z0-9/+]*={0,2}$%'$data)) {
            return 
TRUE;
    } else {
            return 
FALSE;
    }


תשתמש בפונקציה הזאת, היא פורסמה בPHP.net


אמרו שזה לא נכון, מהסיבה שאם אני סתם יתן מחרוזת כזאת: dvir== אפחד לא אמר שהיא הצפנה של base64

Shon12 29-11-08 20:27

ציטוט:

נכתב במקור על ידי DvirCohen (פרסם 684562)
אמרו שזה לא נכון, מהסיבה שאם אני סתם יתן מחרוזת כזאת: dvir== אפחד לא אמר שהיא הצפנה של base64

...
אני ראיתי את הפונקצייה הזאת ממזמן וגם היא לא יכולה להגיד לי ב-100% שזאת הצפנה של base64, מהסיבה שדביר אמר.

vadimg88 29-11-08 21:13

כמו שאמרתי לא תמצא משהו ודאי ב 100% לכן אל תסתמך על זה. אבל באתר http://il.php.net/manual/en/function.base64-decode.php יש פונקציה שאכן נראית כמו אחת שתעבוד הכי טוב בעניין הזה.

PHP קוד:

function checkBase64Encoded($encodedString)
{
    
$length strlen($encodedString);

    
// Check every character.
    
for ($i 0$i $length; ++$i
    {
        
$c $encodedString[$i];
        if (
        (
$c '0' || $c '9')
        && (
$c 'a' || $c 'z')
        && (
$c 'A' || $c 'Z')
        && (
$c != '+')
        && (
$c != '/')
        && (
$c != '=')
        ) {
            
// Bad character found.
            
return false;
        }
    }
    
// Only good characters found.
    
return true;


הפונקציה בודקת תו תו ומוודא שזה נמצא בטווח התווים של האלפבית של ההצפנה שווה לנסות.


כל הזמנים הם GMT +2. הזמן כעת הוא 18:42.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ