כותב |
|
ddDDdd משתמש מתחיל
הצטרף / הצטרפה: 28 October 2005
משתמש: מנותק/ת הודעות: 2
|
נשלח בתאריך: 03 November 2005 בשעה 20:34 | | IP רשוּם
|
|
|
|
שלום, אני מתרגל את השפה שלמדתי - c...
אני נתקלתי בבעיה...
אני מנסה לבנות תוכנה שמצפינה מחרוזת באלוגריתם מונואלפבתי...
אפשר בבקשה לקבל פירוט תאורתי על מה שצריך לבנות? תודה.
|
חזרה לתחילת העמוד |
|
|
Nameless אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 03 November 2005 בשעה 21:11 | | IP רשוּם
|
|
|
|
מכיוון שהצפנה מונואלפבתית זה פשוט החלפת אות מסויימת בטקסט באות אחרת זה מאוד קל לכתוב תוכנית כזאתי
קודם כול עושים מערך שיכיל את המפתח
אתה תקלוט מהמשתמש את המפתח - תדפיס אות ואחרי כל הדפסה תקלוט מהמשתמש באיזו אות הוא רוצה להחליף אותה
תעשה גם בדיק שהוא לא בחר אותה אות פעמיים
אם הוא בחר את האות הזאתי כבר תגיד לו ותעשה את התהליך שוב על אותה האות
(את המפתח שומרים במערך)
אחרי זה קולטים את הטקסט למערך אחר
ולאט לאט או שמדפיסים למסך או שמכניסים למערך שלישי או שניהם את התוצה של ההצפנה
(בודקים כל תא מהמערך ובודקים למה הוא שווה במערך של המפתח ושמים במערך השלישי וזהו)
אפשר לעשות את זה יותר מתקדם עם יותר אפשרויות אבל להתחלה זה בסדר
|
חזרה לתחילת העמוד |
|
|
אבידור משתמש חבר
הצטרף / הצטרפה: 11 October 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 162
|
נשלח בתאריך: 03 November 2005 בשעה 22:13 | | IP רשוּם
|
|
|
|
עוד הסבר, כי נדמה לי שאתה די מתחיל.. (סלח לי אם אני טועה) תקלוט מהמשתמש מחרוזת,
לדוגמא למשתנה
;
ואז עוד מחרוזת של 26 אותיות, בשביל כל אות במה להחליף אותה, ולפי הסדר אלף בית, זאת אמרת עם שם המשתנה
;
אז monoa[0] יהיה הערך המוחלף של A
ו monoa[25] יהיה הערך המוחלט של Z
ואז, ללולאה, תיצור עוד משתנה שיריץ לולאה שתתחיל מאפס ותרוץ כל עוד תהיה פחות מגודל המחרוזת של המשתמש. לדוגמא:
הנה הלולאה:
קוד:
int c;
for(c=0;c<strlen(str);c++)
{
str[c]=monoa[str[c]-48];
/* זה מזהה את האות ומחליף אותה בחדשה. */
printf("%c",str[c]);
}
|
|
|
לדעתי זה יותר קל.
אם אתה רוצה עזרה, או שאני יכתוב לך את הקוד, פשוט תגיד..
מקווה שעזרתי
** יש לציין שהנחתי שהמחרוזת המוצפנת תהיה רק מאותיות קטנות
...
|
חזרה לתחילת העמוד |
|
|
ddDDdd משתמש מתחיל
הצטרף / הצטרפה: 28 October 2005
משתמש: מנותק/ת הודעות: 2
|
נשלח בתאריך: 04 November 2005 בשעה 16:02 | | IP רשוּם
|
|
|
|
מאוד עזרת לי אבל עדיין לא הצלחתי...
אתה יכל לרשום לי את הקוד? אני אלמד ממנו :)
וכן.. אני מתחיל בערך...
לפני שנתיים הייתי מתכנת תוכניות ברמה, פרטיות... אבל אם הזמן שכחתי הכל
אני מנסה "להתרענן" :P לא יודע אם זה ממש מעניין אותך :)
תודה לך!
|
חזרה לתחילת העמוד |
|
|
אבידור משתמש חבר
הצטרף / הצטרפה: 11 October 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 162
|
נשלח בתאריך: 04 November 2005 בשעה 20:41 | | IP רשוּם
|
|
|
|
טוב, כך את התוכנית שתצפין לך כל מרוזת שתרצה, אך תצתרך להוסיף תנאים, כך שיהיה אות מוצפנת לכל אות.
הוספתי הערות לנוחיותך:
קוד:
/******************This is the Includes****/
#include <stdio.h>
#include <conio.h>
#include <string.h>
char encrypt(char ch) /*This function getting some character and return the
encrypt character*/
{
/*Start of checking - If char='b' return A And like this*/
if(ch=='a') return 'b';
else if(ch=='A') return 'B'; //You must write to capital letters too. 'A' and 'a' are diffrent
else if(ch=='b') return 'c';
else if(ch=='3') return '4';//I do ch=='3' and not ch==3 , so the program check by ascii
else if(ch=='4') return '5';
/* I guess you understand, just write more if's, and you will have a program to encrypt things.
if you didn't understand the format: else if/if(ch=="SomeCharToEncrypt") return "Encrypted char"
*/
else return '?';//If the character not in all checks, it return "?". you can change it.
}
/***End of Includes**/
void main() //Main Function
{
char string[20]; //Char for the string, in size of 20 - it can save string
//until 20 characters
int c;//counter
printf("Please enter a String: "); //Printing the message
gets(string);//Getting the string
/***Starting to encrypt**/
for(c=0;c<strlen(string);c++) //The loop will run X times.
//X = length of string
{
printf("%c",encrypt(string[c])); //Printing the Current character,Encrypted - Calling the encrypt function with encrypt char
}
getch(); //Pausing the program until user click something
}
/* If something is wrong, or you understand, I am in underwarrior forums, Avidor(Hebrew)*/
|
|
|
|
חזרה לתחילת העמוד |
|
|
ddDDdd משתמש מתחיל
הצטרף / הצטרפה: 28 October 2005
משתמש: מנותק/ת הודעות: 2
|
נשלח בתאריך: 04 November 2005 בשעה 20:53 | | IP רשוּם
|
|
|
|
א. תודה רבה רבה לך :)
ב. זו היית הצפנת יוליוס קיסר :)
אני חשבתי על אלוגריתמים יותר "מסובכים" (למשל לא ברמת rsa כי.. זה קשה :P )
|
חזרה לתחילת העמוד |
|
|
אבידור משתמש חבר
הצטרף / הצטרפה: 11 October 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 162
|
נשלח בתאריך: 04 November 2005 בשעה 20:57 | | IP רשוּם
|
|
|
|
1. בבקשה
2. יוליוס קיסר זה לא מונואלפאביתי? אז תגיד לי מה?!
3. תן לי את הדרך, אני יתן לך את הקוד. אני לא מכיר מי יודע מה סוגי הצפנות, או "אלגוריתמים יותר "מסובכים"".
|
חזרה לתחילת העמוד |
|
|
ddDDdd משתמש מתחיל
הצטרף / הצטרפה: 28 October 2005
משתמש: מנותק/ת הודעות: 2
|
נשלח בתאריך: 04 November 2005 בשעה 21:46 | | IP רשוּם
|
|
|
|
תודה רבה.. הצלחתי :)
עזרת לי המון...
:)
|
חזרה לתחילת העמוד |
|
|
Nameless אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 05 November 2005 בשעה 00:44 | | IP רשוּם
|
|
|
|
קודם כול, הצפנת קיסר זה לא הצפנה מונואלפבתית
יוליוס קיסר השתמש כנראה בכמה סוגי הצפנות אבל ההצפנה המסויימת הזאת היחידה שידוע עליה
הצפנה קיסר היא הסטה ב 3 של הטקסט
נגיד יש לך בטקסט את האות A הסטה ב 3 מקומות ויצא לך D
פיתחו את זה קצת ועשו מין הצפנת קיסר שהיא לא רק הסטה של שלושה מקומות
ומונואלפבתית זה בכלל החלפת אות אחת באחרת
ולא קשור להסטה
לכם הצפנה מונואלפבתית != הצפנת קיסר
ההצפנה המקורית של קיסר מפגרת וכוללת הסטה של שלושה מקומות
enjoy
don't do school
and do drugs
|
חזרה לתחילת העמוד |
|
|
אבידור משתמש חבר
הצטרף / הצטרפה: 11 October 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 162
|
נשלח בתאריך: 05 November 2005 בשעה 09:46 | | IP רשוּם
|
|
|
|
אז אני לא כתבתי הצפנת יוליוס קיסר, אלה מונואלפאביתית כן?
|
חזרה לתחילת העמוד |
|
|
ddDDdd משתמש מתחיל
הצטרף / הצטרפה: 28 October 2005
משתמש: מנותק/ת הודעות: 2
|
נשלח בתאריך: 05 November 2005 בשעה 10:31 | | IP רשוּם
|
|
|
|
Nameless
האמת תמיד חשבתי שהצפנת יוליוס קיסר (ההצפנה הספציפית הזו...)
היא כן הצפנה מונואלפבתית...
תחילה, בתוכנה שרציתי לפתח באמת התכוונתי להצפנה בא מחליפים אות באחרת אם מפתח שהמשתמש בוחר, ולא הצפנת יוליוס קיסר.
אבל בעזרת הקוד שאבידור כתב לי הבנתי כמה דברים והצלחתי לבנות לבד.
|
חזרה לתחילת העמוד |
|
|
Inj3ction משתמש חבר
הצטרף / הצטרפה: 09 October 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 149
|
נשלח בתאריך: 10 November 2005 בשעה 06:40 | | IP רשוּם
|
|
|
|
גם אני פעם חשבתי לעשות כל מיני תוכנות שיצפינו טקסטים ויפענחו אבל אף פעם
לא היה לי כח לחשוב על איך בדיוק עושים את זה.. אז אבידור תודה רבה רבה לך
עזרת לי מאוד ועכשיו אני לא אצטרך להתגבר על העצלנות שלי
|
חזרה לתחילת העמוד |
|
|
cp77fk4r מנהל פורומים
מנהל פורום אבטחת מידע
הצטרף / הצטרפה: 09 April 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 501
|
נשלח בתאריך: 10 November 2005 בשעה 11:08 | | IP רשוּם
|
|
|
|
Nameless כתב:
קודם כול, הצפנת קיסר זה לא הצפנה מונואלפבתית
יוליוס קיסר השתמש כנראה בכמה סוגי הצפנות אבל ההצפנה המסויימת הזאת היחידה שידוע עליה
הצפנה קיסר היא הסטה ב 3 של הטקסט נגיד יש לך בטקסט את האות A הסטה ב 3 מקומות ויצא לך D
פיתחו את זה קצת ועשו מין הצפנת קיסר שהיא לא רק הסטה של שלושה מקומות ומונואלפבתית זה בכלל החלפת אות אחת באחרת ולא קשור להסטה
לכם הצפנה מונואלפבתית != הצפנת קיסר
ההצפנה המקורית של קיסר מפגרת וכוללת הסטה של שלושה מקומות
enjoy don't do school and do drugs
|
|
|
ניימלס- נפלה לך טעות, הצפנת קיסר היא סוג של הצפנה מונואלפבתית ברורה לחלוטין- בהצפנה מונואלפבתית יש לך רק תו אחד בסייפר-טקסט שיתאים לאות A ורק תו אחד בפליין-טקסט שיתאים לתו G, בדיוק כמו בהצפנת יולוס קיסר!
מכאן: הצפנת יולוס קיסר היא הצפנה מונואלפבתית לכל דבר :)
__________________ [Th3rE R mAnY wAyZ 2 r3aD oN3 EmPty p4gE]
|
חזרה לתחילת העמוד |
|
|
Nameless אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 10 November 2005 בשעה 15:14 | | IP רשוּם
|
|
|
|
אז זאת הצפנה מונואלפבתית צולעת P:
אבל צריך להבדיל בין מונואלפבתית שזה החלפת אות באות אחרת (או אותה אות בחלק מהמקרים)
לבין קיסר שזו גם החלפה אבל החלפה קבועה כי תמיד מסיטים ב 3
בכל מקרה, אפשר לפתח את צופן קיסר קצת ולהחליט בעצמך על ההסטה אבל המקור תמיד יהיה הסטה של 3 D:
אבל אני מניח שזאת עדיין הצפנה מונואלבפתית :\
|
חזרה לתחילת העמוד |
|
|
ddDDdd משתמש מתחיל
הצטרף / הצטרפה: 28 October 2005
משתמש: מנותק/ת הודעות: 2
|
נשלח בתאריך: 11 November 2005 בשעה 09:01 | | IP רשוּם
|
|
|
|
ידעתי שזו הצפנה מונואלפבתית...
תודה cp+namelles :D
|
חזרה לתחילת העמוד |
|
|
Nameless אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 11 November 2005 בשעה 12:13 | | IP רשוּם
|
|
|
|
*Nameless
:D
|
חזרה לתחילת העמוד |
|
|