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

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

miniature 20-04-06 20:03

יש סוג הצפנה ב PHP שניתנת לפענוח?
 
תודה,
יואב.

null 20-04-06 20:07

base64
נדוש כבר...

miniature 20-04-06 20:14

tnx

BlueNosE 20-04-06 20:54

base64+url
base64_encode
base64_decode
urlencode
urldecode

אעע, וזה לא בדיוק הצפנה אבל strrev שעוזר עם שימוש בbase64..

miniature 20-04-06 20:57

תודה.

Ori The Man 21-04-06 15:37

אתה יכול ליצור הצפנה משל עצמך :)

Alon.R 21-04-06 17:27

קוראים לזה הצפנה דו כיוונית, משמע שאתה מצפין ויכול להחזיר לאחר ההצפנה את הערך המוצפן.

miniature 21-04-06 17:54

ציטוט:

נכתב במקור על ידי Ori The Man
אתה יכול ליצור הצפנה משל עצמך :)

איך?

LosNir 21-04-06 18:41

ציטוט:

נכתב במקור על ידי miniature
איך?

עם המון str replace,
למשל:

PHP קוד:

$pass "0202363654123";
$pass str_replace("23","7"$pass);
$pass str_replace("541","1"$pass);
$pass str_replace("0202","Nir"$pass);
$pass str_replace("3636","Azuelos"$pass);
echo 
$pass// will echo 'NirAzuelos17' 

הערה2:
שיטת ההצפנה הזאת לא תעבוד על ערך דינאמי (ערך שמתקבל מטפסים למשל), כי אי אפשר לדעת מה הגלש יזין לתוך הטופס,
אז בשביל להפוך את זה לשיטת הצפנה דינאמית אתה צריך לעשות str_replace לכל תו קיים.
ותיקח בחשבון שאם אותו אחד יודע PHP בסיסי אז הוא כבר יוכל לדעת את הסיסמא.. אז הז לא כ"כ יעיל לשיטות הצפנה דינאמיות.
אבל בהחלט יעיל לסתם ערכים שאתה קובע, כגון סיסמא להתחברות למסד נתונים.

אני עשיתי משהו דומה למערכות שאני בונה.. ככה שאם למישהו יש גישה לקבצים שלי (כמו לבעל השרת) אז הוא לא יוכל לדעת את הסיסמא של המסד, כמובן זה במידה והוא לא יודע PHP בסיסי, העיקרון למניעת גניבות מ"פורצים מתחילים".

הערה1:
אתה יכול לשנות את הסדר של ה str_replace וככה יהיה טיפה יותר קשה לגנוב את הסיסמא, למשל:

PHP קוד:

$pass "0202363654123";
$pass str_replace("0202","Nir"$pass);
$pass str_replace("3636","Azuelos"$pass);
$pass str_replace("541","1"$pass);
$pass str_replace("23","7"$pass);
echo 
$pass// will echo 'NirAzuelos17' 


Ori The Man 21-04-06 18:44

ציטוט:

נכתב במקור על ידי LosNir
עם המון str replace,
למשל:

PHP קוד:

$pass "0202363654123";
$pass str_replace("0202","Nir"$pass);
$pass str_replace("3636","Azuelos"$pass);
$pass str_replace("541","1"$pass);
$pass str_replace("23","7"$pass);
echo 
$pass// will echo 'NirAzuelos17' 

אני עשיתי משהו דומה למערכות שאני בונה.. ככה שאם למישהו יש גישה לקבצים שלי (כמו לבעל השרת) אז הוא לא יוכל לדעת את הסיסמא של המסד, כמובן זה במידה והוא לא יודע PHP בסיסי, העיקרון למניעת גניבות מ"פורצים מתחילים".

בידיוק

אפשר להפוך כל אות לכמה מספרים ולהתחיל להחפיל אותם
חחחח
ואז יוצא מספר ענק ואף אחד לא יוכל לחשב בחזרה

null 21-04-06 18:46

ציטוט:

נכתב במקור על ידי Ori The Man
בידיוק

אפשר להפוך כל אות לכמה מספרים ולהתחיל להחפיל אותם
חחחח
ואז יוצא מספר ענק ואף אחד לא יוכל לחשב בחזרה

יש אפשרות לעשות משהו כמו CD - KEY ?
שיהיה יחודי ויקבע לפי שם פרטי ומשפחה לדוגמא?

LosNir 21-04-06 18:47

ציטוט:

נכתב במקור על ידי Ori The Man
בידיוק

אפשר להפוך כל אות לכמה מספרים ולהתחיל להחפיל אותם
חחחח
ואז יוצא מספר ענק ואף אחד לא יוכל לחשב בחזרה

שים לב שערכתי |קורץ|
וגם זאת בהחלט שיטה טובה! (כמובן במידה שאותו אחד הוא אפס ב PHP)
|winky|

ציטוט:

נכתב במקור על ידי HamuZ
יש אפשרות לעשות משהו כמו CD - KEY ?
שיהיה יחודי ויקבע לפי שם פרטי ומשפחה לדוגמא?

למה אתה מתכוון?
תיראה זה פשוט שיטת הצפנה יחודית.. אתה יכול לעשות עם זה מה שבא לך

null 21-04-06 18:50

ציטוט:

נכתב במקור על ידי LosNir
שים לב שערכתי |קורץ|
וגם זאת בהחלט שיטה טובה! (כמובן במידה שאותו אחד הוא אפס ב PHP)
|winky|



למה אתה מתכוון?
תיראה זה פשוט שיטת הצפנה יחודית.. אתה יכול לעשות עם זה מה שבא לך

אני מתכוון שזה יוציא עם השיטה מס' למשל נגיד לפי שם הפרטי שמישהו הכניס
וזה יהיה באותו אורך לא משנה איזה אורך השם הפרטי :)

LosNir 21-04-06 18:56

ציטוט:

נכתב במקור על ידי HamuZ
אני מתכוון שזה יוציא עם השיטה מס' למשל נגיד לפי שם הפרטי שמישהו הכניס
וזה יהיה באותו אורך לא משנה איזה אורך השם הפרטי :)

לא הבנתי מה אתה רוצה 8-*
בכל מקרה זה לא דינאמי..
אתה לא אמור לנחש מה השם משפה שלו נכון?
מה אתה תתחיל לעשות 70000000000000 str_replace ובכל אחד שם משפחה אחר?

PHP קוד:

$name str_replace("Abutbul","BLA"$name); 
$name str_replace("Azuelos","BLA"$name); 
$name str_replace("Garty","BLA"$name); 
$name str_replace("Lankri","BLA"$name); 
$name str_replace("Vaknin","BLA"$name); 
$name str_replace("Mnham","BLA"$name); 
........
.......
......
.....
....
... 

|Stare|

null 21-04-06 18:59

ציטוט:

נכתב במקור על ידי LosNir
לא הבנתי מה אתה רוצה 8-*
בכל מקרה זה לא דינאמי..
אתה לא אמור לנחש מה השם משפה שלו נכון?
מה אתה תתחיל לעשות 70000000000000 str_replace ובכל אחד שם משפחה אחר?

PHP קוד:

$name str_replace("Abutbul","BLA"$name); 
$name str_replace("Azuelos","BLA"$name); 
$name str_replace("Garty","BLA"$name); 
$name str_replace("Lankri","BLA"$name); 
$name str_replace("Vaknin","BLA"$name); 
$name str_replace("Mnham","BLA"$name); 
........
.......
......
.....
....
... 

|Stare|

מה שדיברתי אליו זה גירסא קטנטנה של MD5....
הרי אין שם הרבה STR REPLACE
לא כך? ;P

LosNir 21-04-06 19:03

ציטוט:

נכתב במקור על ידי HamuZ
מה שדיברתי אליו זה גירסא קטנטנה של MD5....
הרי אין שם הרבה STR REPLACE
לא כך? ;P

מי יודע אולי יש..
הסתכלת פעם במקור של PHP? ;P

Eye-Soft 21-04-06 19:53

MD5 זה בכלל לא קידוד :\ זה HASH וזה חד כיווני...
הכי פשוט, תעשה את זה ככה:
תעבור על כל תוי האסקי ותחליף אותם התו אחר קבוע. לדוגמא a יתחלף לf וככה הלאה.

Ori The Man 21-04-06 20:13

ראיתי עכשיו שגיאת כתיב שכתבתי
רשמתי להחפיל
ולא להכפיל
סליחה :)

miniature 22-04-06 19:03

ואיך מבוצעת הצפנה חד כיוונית? איך יודעים שהיא באמת חד כיוונית?

BlueNosE 22-04-06 19:53

חד כיוונית אומר שמהסיסמא עצמה אין דרך חזרה, או לפחות אין אולגריתם שגורם לזה להפוך לסיסמא.

md5 sha1 וכו' הם חד כיווניים, כלומר אני לא יכול לראות את הסיסמא ולהגיד, "אה, פה כתוב BlueNosE",
שיטת הפריצה שלהם היא הרצה של כל סיסמא אפשרית (כמו הBrute של ICQ),
או ניסיונות לתרגום, למיטב ידיעתי עד היום אף אחד לא הצליח למצוא אולגריתם שעושה את הפעולה ההפוכה..

LosNir 22-04-06 20:30

ציטוט:

נכתב במקור על ידי BlueNosE
חד כיוונית אומר שמהסיסמא עצמה אין דרך חזרה, או לפחות אין אולגריתם שגורם לזה להפוך לסיסמא.

md5 sha1 וכו' הם חד כיווניים, כלומר אני לא יכול לראות את הסיסמא ולהגיד, "אה, פה כתוב BlueNosE",
שיטת הפריצה שלהם היא הרצה של כל סיסמא אפשרית (כמו הBrute של ICQ),
או ניסיונות לתרגום, למיטב ידיעתי עד היום אף אחד לא הצליח למצוא אולגריתם שעושה את הפעולה ההפוכה..

הממ תשובה כמעט נכונה,
קודם כל השיטה הזאת נקראת שיטה ברוטאלית, וכן הצליחו לפרוץ אותה,
אך בשביל דבר כזה צריך המון מחשבים חזקים, ולא לא אני לא מדבר על מחשב כמו שלך, אני מדבר על מחשבים ממש ממש חזקים בשווי של יותר ממאות דולרים, ומי שמנסה דבר כזה בטח לא ינסה על סיסמא של איזה פורום, אלא על סיסמאות של מחשבים ממקומות ממש ממש סודיים ושל מבצעים שהודלפו איכשהו.

Eye-Soft 22-04-06 21:07

ציטוט:

נכתב במקור על ידי BlueNosE
חד כיוונית אומר שמהסיסמא עצמה אין דרך חזרה, או לפחות אין אולגריתם שגורם לזה להפוך לסיסמא.

md5 sha1 וכו' הם חד כיווניים, כלומר אני לא יכול לראות את הסיסמא ולהגיד, "אה, פה כתוב BlueNosE",
שיטת הפריצה שלהם היא הרצה של כל סיסמא אפשרית (כמו הBrute של ICQ),
או ניסיונות לתרגום, למיטב ידיעתי עד היום אף אחד לא הצליח למצוא אולגריתם שעושה את הפעולה ההפוכה..

MD5 ו SHA1 הן לא הצפנות. הן HASH.
במקרה של MD5 כל דבר יהפוך לרצף של 31 תווים. בלתי אפשרי להפוך 31 תווים למשהו בעל נגיד 600000000 תווים. MD5 היא לא הצפנה ! אין דרך חזרה כי המספרים והאותיות לא מייצגים כלום !

Eye-Soft 22-04-06 21:08

ציטוט:

נכתב במקור על ידי LosNir
הממ תשובה כמעט נכונה,
קודם כל השיטה הזאת נקראת שיטה ברוטאלית, וכן הצליחו לפרוץ אותה,
אך בשביל דבר כזה צריך המון מחשבים חזקים, ולא לא אני לא מדבר על מחשב כמו שלך, אני מדבר על מחשבים ממש ממש חזקים בשווי של יותר ממאות דולרים, ומי שמנסה דבר כזה בטח לא ינסה על סיסמא של איזה פורום, אלא על סיסמאות של מחשבים ממקומות ממש ממש סודיים ושל מבצעים שהודלפו איכשהו.

שיהיה לך הכסף או לכל העולם ביחד למחשב ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש ממש סודי שיכול לפצח משהו שלא ניתן לפיצוח, תודיע לי, אני אתרום לך שקל שלם למחקר.

BlueNosE 22-04-06 21:14

ציטוט:

נכתב במקור על ידי Eye-Soft
MD5 ו SHA1 הן לא הצפנות. הן HASH.
במקרה של MD5 כל דבר יהפוך לרצף של 31 תווים. בלתי אפשרי להפוך 31 תווים למשהו בעל נגיד 600000000 תווים. MD5 היא לא הצפנה ! אין דרך חזרה כי המספרים והאותיות לא מייצגים כלום !

תרגם לי HASH לעברית.
אני מנסה להסביר בצורה שהוא יוכל להבין אתה יודע..
ולהגיד לו שMD5 זה HASH לא ממש אומר משהו.

miniature 22-04-06 21:15

ציטוט:

נכתב במקור על ידי Eye-Soft
MD5 ו SHA1 הן לא הצפנות. הן HASH.
במקרה של MD5 כל דבר יהפוך לרצף של 31 תווים. בלתי אפשרי להפוך 31 תווים למשהו בעל נגיד 600000000 תווים. MD5 היא לא הצפנה ! אין דרך חזרה כי המספרים והאותיות לא מייצגים כלום !

אז איך יוצרים HASH ?

miniature 22-04-06 21:20

ציטוט:

נכתב במקור על ידי LosNir
עם המון str replace,
למשל:

PHP קוד:

$pass "0202363654123";
$pass str_replace("23","7"$pass);
$pass str_replace("541","1"$pass);
$pass str_replace("0202","Nir"$pass);
$pass str_replace("3636","Azuelos"$pass);
echo 
$pass// will echo 'NirAzuelos17' 

הערה2:
שיטת ההצפנה הזאת לא תעבוד על ערך דינאמי (ערך שמתקבל מטפסים למשל), כי אי אפשר לדעת מה הגלש יזין לתוך הטופס,
אז בשביל להפוך את זה לשיטת הצפנה דינאמית אתה צריך לעשות str_replace לכל תו קיים.
ותיקח בחשבון שאם אותו אחד יודע PHP בסיסי אז הוא כבר יוכל לדעת את הסיסמא.. אז הז לא כ"כ יעיל לשיטות הצפנה דינאמיות.
אבל בהחלט יעיל לסתם ערכים שאתה קובע, כגון סיסמא להתחברות למסד נתונים.

אני עשיתי משהו דומה למערכות שאני בונה.. ככה שאם למישהו יש גישה לקבצים שלי (כמו לבעל השרת) אז הוא לא יוכל לדעת את הסיסמא של המסד, כמובן זה במידה והוא לא יודע PHP בסיסי, העיקרון למניעת גניבות מ"פורצים מתחילים".

הערה1:
אתה יכול לשנות את הסדר של ה str_replace וככה יהיה טיפה יותר קשה לגנוב את הסיסמא, למשל:

PHP קוד:

$pass "0202363654123";
$pass str_replace("0202","Nir"$pass);
$pass str_replace("3636","Azuelos"$pass);
$pass str_replace("541","1"$pass);
$pass str_replace("23","7"$pass);
echo 
$pass// will echo 'NirAzuelos17' 


אין אפשרות שהכל יהיה ב str_replace אחד?
כי ככה זה נותן שגיאה:
PHP קוד:

$str "abcdef";
$en = array("a""b""c");
$en_rep str_replace($en"d""e""f"$str); 

וזה לא נותן abcabc ...

BlueNosE 22-04-06 21:28

אתה ממציא קודים?
PHP קוד:

$str "abcdef";
$en = array("a""b""c");
$en2 = array("d""e""f");
$en_rep str_replace($en2$en$str); 


Eye-Soft 23-04-06 14:05

ציטוט:

נכתב במקור על ידי miniature
אז איך יוצרים HASH ?

HASH - לא משנה כמה תווים אתה תכניס, המחרוזת הסופית תהיה בעלת אורך קבוע.

BlueNosE 23-04-06 14:16

אני לא מבין, יש הרי אינסוף מחרוזות בעולם,
אז בטוח אחת המחרוזות תביא את אותו רצף ה31 תווים כמו מחרוזת אחרת (בעולם..)
לא?!?!?!

AFI 23-04-06 14:21

ציטוט:

נכתב במקור על ידי BlueNosE
אני לא מבין, יש הרי אינסוף מחרוזות בעולם,
אז בטוח אחת המחרוזות תביא את אותו רצף ה31 תווים כמו מחרוזת אחרת (בעולם..)
לא?!?!?!

בMD5 יכול להיות ששתי סיסמאות יתנו את אותו ערך בMD5

miniature 23-04-06 17:45

ציטוט:

נכתב במקור על ידי BlueNosE
אתה ממציא קודים?
PHP קוד:

$str "abcdef";
$en = array("a""b""c");
$en2 = array("d""e""f");
$en_rep str_replace($en2$en$str); 


זה רק אני או שבעברית זה לא עובד לי.. ?!

BlueNosE 23-04-06 20:15

תעבוד עם UTF8 וזה יעבוד.

Saint 24-04-06 20:07

כבר הצליחו לפרוץ את המנגנון של MD5, מה שאתה יכול לעשות זה להריץ קוד ראנדומלי שיריץ משהו כמו 4 מספרים ואותיות על str_replace, אבל צריך שלכל str יהיה קוד שונה, הסיכוי שהקוד יופיע פעמיים הוא 1 ל9999 פעמים, ככה אתה יכול לעשות הצפנה חד כיוונית.

אגב, בניתי כרגע קוד כזה, עובד סבבה, ואי אפשר למצוא חזרה את הסיסמה.

null 24-04-06 20:23

אני לא מבין מה הבעיה ליצור משהו שהופך STRING של MD5 ולאיזשהו סטרינג,
הרי את האלגוריתם של זה אפשר להשיג,
כמובן שיש שימוש במטריקסות וכל השטויות האלה
ועוד כמה דברים שאני לא יודע,
אבל בתכלס, מה הבעיה לשבת לבנות אחת? :)

[ אני לא יכול כי חסר לי ידע מתחום המתמטיקה ]

miniature 24-04-06 20:25

ציטוט:

נכתב במקור על ידי BlueNosE
תעבוד עם UTF8 וזה יעבוד.

בלי זה זה לא יעבוד?

Eye-Soft 24-04-06 20:43

ציטוט:

נכתב במקור על ידי HamuZ
אני לא מבין מה הבעיה ליצור משהו שהופך STRING של MD5 ולאיזשהו סטרינג,
הרי את האלגוריתם של זה אפשר להשיג,
כמובן שיש שימוש במטריקסות וכל השטויות האלה
ועוד כמה דברים שאני לא יודע,
אבל בתכלס, מה הבעיה לשבת לבנות אחת? :)

[ אני לא יכול כי חסר לי ידע מתחום המתמטיקה ]

באמת ? בו תחשוב בהגיון שנייה.

כיצד הופכים מחרוזת בעלת 31 תווים למחרוזת בעלת 10,000 תווים, כאשר יש סיכוי גבוהה מאוד שהMD5 של המחרוזת בעלת 10,000 תווים יכול להיות הMD5 של מחרוזת אחרת לחלוטין בעלת תו אחד.

כאשר תגלה את זה, אני מבטיח לך, אתה תעבוד בNSA.


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

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