MD5 זה דרך להפוך כל טקסט (או ערך אחר) למספר הקסדצימלי באורך קבוע. לדוגמא 12345 זה: 827ccb0eea8a706c4c34a16891f84e7b למרות מה שאמרו לך פה, אפשר לפצח את זה, דבר ראשון אם אני זוכר נכון יש לזה חולשה מסויימת, אבל גם אם לא יש שתי דרכים מאוד פשוטות לפצח את זה, שבעצם האחת מבוססת על השנייה. הראשונה היא תוכנה שמקודדת את כל האפשרויות ל MD5 ומשווה, והשנייה לעומת זאת היא טבלה שכבר מכילה את כל האופציות ופשוט משווה בלי לחשב מחדש כי הכל כבר מחושב מראש. הנה מתרגם אחד לדוגמא: http://gdataonline.com/seekhash.php משום מה הוא לא מתרגם את שלך, יכול להיות שהוא לא נמצא ב DB שלו... חפש בגוגל אתה יכול להוריד כאלה מהשיטה השנייה ואז זה בטוח ימצא. אתה יכול לקרוא עוד על MD5 בויקיפדיה. בעקרון MD5 משמש לשני דברים עיקריים, הראשון הוא אחסון ססמאות, לדוגמא אם אתה רוצה ליצור לוגין בלי שהססמא שלך תשמר על המחשב אתה עושה לה MD5 ואז מה שקורה זה שנשמר הטקסט המקודד שבעקרון אי אפשר להחזירו ובשביל לברר אם ססמא היא נכונה, אתה פשוט מקודד את הססמא שהיוזר מגניס ומשווה לקידוד שלך. שימוש שני היא לפני שאתה שולח קובץ באינטרנט אתה מקודד ואתה שולח את הקובץ ובנוסף גם את הקידוד ואז מי שמקבל את הקובץ גם מקודד וככה אפשר לבדוק שהוקבץ לא הושחט, שזה בעצם הקובץ המקורי ושמישהו לא שינה אותו או שהוא סתם לא הושחט בזמן ההעברה.
כמו שאמרתי אבל, זה השיטה המקובלת (לפחות עד כמה שאני מכיר) לשמירת ססמאות בשרתים. מקודדים ב MD5 ואז מקודדים כל ססמא שיוזר מכניס ומשווים עם הקידוד שכבר קיים. הערך המספרי ומה שאתה קורא לו ASCII זה אותו דבר בדיוק. אסקי זה סטנדרט שקובע כמה (במספר) שווה כל תו במחשב. במגבלה של בית אחד. הערך המספרי "המתורגם" של MD5 יכול להתרגם לאסקי. הכוונה היא בקיצור שאם אני לא טועה אפשר למצוא את הערך שבעזרתו קידדו את המחרוזת MD5 המדוברת בעזרת בעייה קטנה באלגוריתם, כלומר שהוא לא באמת חד כיווני כמו שחשבו, וככה בעצם למצוא את המחרוזת שאותם קודדו. הכוונה כמובן למחרוזות הראשונות, כי הרי ל MD5 יש מחזורי קידוד, כי הרי MD5 לא יכול לתת ערך שונה לכל מחרוזת בעולם, מתישהו זה מתחיל לחזור על עצמו.