![]() |
שאלה - האם ניתן לדעת בוודאות? base64.
שלום,
אני בונה משהו קטן כרגע. יש לי בעיה קטנה בזיהוי ההצפנה base64, מה זאת אומרת? אז ככה, יש לי את ההצפנה הבאה ב-base64, לדוגמא: PHP קוד:
גירסאת PHP: 4.48. חשבתי על לקבל את האדרים של הדף ושם יהיה זיהוי כולשהו שיוכל לעזור לי, אך הגירסאת PHP לא תומכת. REGEX - לא ממש עזר פה. אשמח לעזרה, תודה. |
http://src.opensolaris.org/source/xr...iscsi/base64.c
שאלה ממש יפה האמת, והשכלתי מחיפוש בגוגל. |
ציטוט:
אני לא יודע C \ c++ או מה שזה לא יהיה ;P כך שאני לא מבין את הקוד ואני לא יכול "להמיר" אותו ל-PHP. אשמח לעזרה נוספת. |
עזרה?:(
|
לא נראה לי שיש דרך, בטוח לא משהו שמשהו כאן יודע אחרת הוא היה מגיב. אני אישית לא שמעתי על דבר כזה.
|
אממ תנסה לעשות לה BASE64 DEOCDE?
|
ציטוט:
|
הפונקציה מחזירה FALSE אם ה DECODE לא התבצע.
|
ואוו לא חשבתי שזה כזה פשוט :S פשוט לא ידעתי שלפונקצייה יש FALSE במידה והיא לא נכונה...
בכל מקרה תודה רבה לכולם. |
זה לא הפתרון אבל, אתה יכול לקבל סטרינג שהוא דומה בידיוק לBASE64 ואז תבצע עליו DECODE זה יבצע אותו אבל זה לא אומר שהוא היה ENCODED מלכחתחילה.
|
ציטוט:
|
עדיין זה לא משהו שאפשר להסתמך עליו ב 100%. זה כבר לשיקולו של פותח הנושא.
|
גם לMD5 יכולות להיות 2 קומבינציות שנותנות את אותו MD5
בכל מקרה אתה יכול לעשות DECODE, במידה ויש לך FALSE אז סגרנו עניין במידה ויש לך TRUE קח את הערך אחרי הDECODE, תעשה לו ENCODE ותשווא עם הערך המקורי בהצלחה |
ציטוט:
|
ציטוט:
|
לומר אתה טועה גם אני יכול
איפה אני טועה |
PHP קוד:
|
ציטוט:
אמרו שזה לא נכון, מהסיבה שאם אני סתם יתן מחרוזת כזאת: dvir== אפחד לא אמר שהיא הצפנה של base64 |
ציטוט:
אני ראיתי את הפונקצייה הזאת ממזמן וגם היא לא יכולה להגיד לי ב-100% שזאת הצפנה של base64, מהסיבה שדביר אמר. |
כמו שאמרתי לא תמצא משהו ודאי ב 100% לכן אל תסתמך על זה. אבל באתר http://il.php.net/manual/en/function.base64-decode.php יש פונקציה שאכן נראית כמו אחת שתעבוד הכי טוב בעניין הזה.
PHP קוד:
|
ציטוט:
אבל מה שחשוב זה לא רק אם התווים הם תווים של base64 תקניים אלא גם שהמבנה שההצפנה באמת נכון. ואת זה אפשר לבדוק באופן פשוט ע"י לעשות decode לה. לפותח האשכול:אתה רוצה לבדוק את זה בשביל משהו תאורטי או מעשי? אם בשביל משהו מעשי,תגיד בשביל מה ואולי נוכל לעזור לך יותר ככה. |
לדעתי פתרתי אתת הבעיה כבר קודם
תקראו את התגובה שלי זה דיי ממצא הכי קל לעשות DECODE, אם קיבלת FALSE אז זה אומר שזה לא BASE64 ENCODED אם לא קיבלת FALSE אז קח את הערך שקיבלת מהDECODE, תעביר עליו ENCODE ואז תשווה אותו עם הערך המקורי שהוא צריך להיות ENCODED, אם הם שווים --> זה מוצפן בBASE 64 בהצלחה |
ניצן - תודה רבה לך, הצלחתי.
וכמובן תודה רבה לכל אלה שניסו לעזור. הקוד: PHP קוד:
|
הקוד שלך קצת מוזר לי בכל מקרה הנה
PHP קוד:
תתפנק |
PHP קוד:
אם אתה לא מקצה למשתנים ערך אל תצהיר עליהם בכלל..חבל על הזיכרון |
ציטוט:
ודביר - PHP בכללי זוללת זכרון כי אתה לא ממש מגדיר משתנים ואז האינטרפרטר לא בדיוק מקצה גדלים (אינט של 8 ביט או 16 או 32 והלאה), בגלל זה ההערה שלך ממש לא במקום אני יורה לעצמי ברגל אם אתה מגדיר סוגי משתנים בPHP בקוד שלך (: |
ציטוט:
והגודל int קבוע מראש לפי מספר שקבוע מphp.ini |
בקשר לאיך שהגדרתי את המשתנים - אני לא בקיא באיך שהמשתנים נכנסים לזיכרון וכל זה, אבל לפעם הבאה אני אדע.
בכל מקרה הרעיון של ניצן באמת עובד חלק, ניצן את האמת? לא הבנתי אפילו איך זה עובד... אתה יכול להסביר? כלומר איך הוא באמת מזהה שזאת הצפנה תקינה בזה שעשית לו ENCODE וDECODE, לפי מה שטיפה הבנתי שסגרת את כל הקומבינציות אם ההצפנה תקינה או לא. |
לפי הדוקומנטציה בישביל שה DECODE יחזיר FALSE צריך להעביר לו פרמטר שני שיהיה שוורה ל TRUE או 1
PHP קוד:
PHP קוד:
|
ציטוט:
מאז שאני לומד JAVA, אם הייתי יודע איך להצהיר על סוג משתנה, יש מצב הייתי עושה את זה. בכל מקרה זה שיטה מפגרת לדעתי ההצהרה של משתנים. אם אתה לא נותן להם ערך, אין שום סיבה להצהיר עליהם. ציטוט:
אם תיקח סתם מחרוזת, לדוגמא dvir==, ותעשה לה encode, ואז תעשה decode למחרוזת החדשה, זה לא יהיה אותו דבר. |
דביר
PHP קוד:
רק שבPHP הוא משמש גם כדי להגדיר משתנים וד'א בPHP לא מגדירים משתנים כי זה דיי מבוסס פרל בפרל האינטרפרטר מקצה מקום וסוג לפי מה שמוזן למשתנה באותו רגע וואדים - כתבתי מהראש.. טוב לדעת זה קיים בPHP5 או גם בגרסאות הישנו><.? |
ציטוט:
|
כל הזמנים הם GMT +2. הזמן כעת הוא 03:31. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ