ABA


"יש כאן איזה קוד שעושה DECODE למשהו"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #6325 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 6325
Cd-Writer

   20:59   15.06.03   
אל הפורום  
  יש כאן איזה קוד שעושה DECODE למשהו  
 
   אני צריך עזרה בלפענח איך זה עובד...
אז ככה

String pass = "";
String spass = getParameter("pass");
int rand = spass.charAt(spass.length() - 1);
Random random = new Random(rand);
for(int i = 1; i < spass.length() - 1; i++)
{
int randres = (int)(random.nextDouble() * 25D + 97D);
pass = pass + (char)((96 + randres) - spass.charAt(i));
}

מישהו יכול לתרגם לי את זה למילים? :\


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  זה גאווה לא? מצטער הייתי עוזר לך אבל Vidi 15.06.03 21:06 1
     כן העסק הזה קצת מוזר Cd-Writer 15.06.03 23:18 2
  לא מסובך.. adiadi 16.06.03 09:57 3
     אכן, למעשה מדובר בstream cipher dryice 16.06.03 15:33 4
         אם כבר.. אני אנצל את האשכול לשאלה: adiadi 16.06.03 21:07 5
         אני צריך לעשות DECODE לכזו סיסמא Cd-Writer 16.06.03 22:22 6
             אתה חייב לדעת מה האלגוריתם dryice 17.06.03 12:16 7
             nextDouble מחזיר את המספר ה''אקראי'' הבא: adiadi 18.06.03 09:43 8

       
Vidi
חבר מתאריך 1.10.17
591 הודעות
   21:06   15.06.03   
אל הפורום  
  1. זה גאווה לא? מצטער הייתי עוזר לך אבל  
בתגובה להודעה מספר 0
 
אני לא יודע גאווה
אבל לפי מה שהבנתי זה עושה ראנדום
אז איך זה יכול לכתוב ססמא נורמלית ורגילה וקבועה לפי טקסט מסויים...
כלומר איך הוא יכול להצפין בדרך תקינה אם הוא כל פעם מגריל ערך אחר לעוזר בהגרלה?!


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Cd-Writer

   23:18   15.06.03   
אל הפורום  
  2. כן העסק הזה קצת מוזר  
בתגובה להודעה מספר 1
 
   אבל זה מגריל מספר בין 0 ל 1
אז יכול להיות שזה עדיין הגיוני..
אין לי מושג :\

מה שאני יכול להגיד לך בוודאות שזה עובד...
אני פשוט לא יודע איך...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
adiadi

   09:57   16.06.03   
אל הפורום  
  3. לא מסובך..  
בתגובה להודעה מספר 0
 
   נניח שמדובר בסיסמא מוצפנת, וזה ה-reverse שלה:
rand מקבל ערך מהסיסמא המוצפנת, ובעזרתו נעשה random. אתה בטח שואל שאם זה אקראי - אז מה הפיענוח פה? אם כן - המספר שאתה שם ב-Random (שהוא rand והוא קבוע עבור כל סיסמא ספציפית) קובע איזה סט מספרים תקבל. למעשה כל המספרים האקראיים במחשב נימצאים בו מראש (כמות גדולה מאוד שלהם) ואתה פשוט צריך לקבוע מעין offset מהיכן להתחיל את הקריאה שלהם, אחד אחרי השני.

ההמשך די ברור.. האקראיות (לכאורה בלבד, כאמור) בונה את הסיסמא מחדש.

עכשיו תשאל איך ניתן לבנות את ההצפנה (ולא את ה-decode):

1. מגרילים מספר כלשהו בגודל byte (ניקרא לו R)
2. מגרילים מספרים נוספים, אבל לפי R (כלומר new Random של R)
3. שינוי של כל תו בסיסמא המקורית באמצעות "המגריל" החדש
4. בסיום יש להוסיף לסוף הסיסמא המוצפנת את R

יש כל מיני שיטות הצפנה, כשביוניקס יש כלים מובנים להצפנות בסיסיות (וסתמיות משהו) עפ"י סטרינג אחר (שאפשר לעשות לו reverse אך ורק אם יש לך את הסטרינג המקורי (key).

אני חושב שההסבר שלי די ברור, אבל אם לא - תגיד ואני אטרח להסביר את עצמי יותר ברור.. ביי


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dryice

   15:33   16.06.03   
אל הפורום  
  4. אכן, למעשה מדובר בstream cipher  
בתגובה להודעה מספר 3
 
   משתמשים במפתח כלשהוא, בשביל לייצר רצף, ארוך כרצוני
של מספרים פסאדו-אקראיים, לרצף הזה באופן קלאסי
עושים XOR עם הplaintext, כדי לקבל את הciphertext
במקרה הזה, הם עושים חיבור וחיסור במקום XOR

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

צופן מוכר בשימוש נרחב שמשתמש בשיטה זאת, הוא RC4

DRYICE


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
adiadi

   21:07   16.06.03   
אל הפורום  
  5. אם כבר.. אני אנצל את האשכול לשאלה:  
בתגובה להודעה מספר 4
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Cd-Writer

   22:22   16.06.03   
אל הפורום  
  6. אני צריך לעשות DECODE לכזו סיסמא  
בתגובה להודעה מספר 4
 
   אם אין לי את האובייקט הזה של הרנדום, מה אני עושה?
ואיזה מספרים ה nextDouble מחזיר?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dryice

   12:16   17.06.03   
אל הפורום  
  7. אתה חייב לדעת מה האלגוריתם  
בתגובה להודעה מספר 6
 
   לייצור מספרים פסדו-אקראיים.

מה יש לך חוץ מקטע הקוד הנ"ל וכתב הסתר?

DRYICE


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
adiadi

   09:43   18.06.03   
אל הפורום  
  8. nextDouble מחזיר את המספר ה''אקראי'' הבא:  
בתגובה להודעה מספר 6
 
   נניח שעשית (new Random(15 - למעשה ניכנסת לאוסף מספרים אקראיים שהוכנו מראש. למשל אלו :

0.3463172
0.8649843
0.8530293
0.6720545

עכשיו בכל איטרציה שאתה מבקש nextDouble תקקבל את המספר הבא. אני לא מכיר ג'אווה בצורה טובה אבל נידמה לי שיש גם nextInteger ונוספים שפשוט עושים casting למספר.

ולמה אין לך את האובייקט Random ? ניראה לי שזה משהו בסיסי שבא בכל התקנה של ג'אווה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net