PDA

View Full Version : جایگزاری حرف



mohsen_f_b
یک شنبه 17 آبان 1388, 15:18 عصر
سلام
قبل از هر چیز از تمامی اعضاء سایت برنامه نویسان مخصوصا اعضاء فعال بخش برنامه نویسی .Net تشکر ویژه می کنم .
یک سوال در حد لالیگا داشتم.:لبخند:
من می خوام یک سری حروف رو جایگزین یکسری حروف دیگه توی متن کنم.
البته این کار باید حرف به حرف انجام بشه.
مثلا:
یک متن دارم به شکل زیر

Salam Man Mohsen Hastam Az Azaie Site Barnamehnevisan.


حالا می خوام بجای حروف استفاده شده یکسری حروف دیگه بکار ببرم.
باید چه کار کنم؟
بجای s از a ، بجای a از e ،بجای e از z وهمین طور ادامه پیدا کنه.

دوتا لیست بهش بدیم و بگیم جایگزاری کن.

باتشکر

sirafemaa
یک شنبه 17 آبان 1388, 16:49 عصر
از تابع های کار با رشته ها میتونی استفاده کنی.
میتونی تبدیل به کاراکتر کنی و تو یه آرایه بریزی و در آرایه حرکت کنی و و اگر محتوای خانه آرایه مثلا برابر a بود برابر e کنی.

mn_zandy63
یک شنبه 17 آبان 1388, 17:01 عصر
داخل یک حلقه کاراکتر ها رو چک کن، اگه نیاز به تغییر بود تغییر بده.
به طور مثال در صورتی که جزو لیست تغییرات بود کاراکتر جدید و در غیر اینصورت همون کاراکتر رو به یک رشته جدید اضافه کن.

saied_genius
یک شنبه 17 آبان 1388, 18:06 عصر
حتماً مي خواي يک جورايي رمز نگاري کني!

برات يه نمونه الان نوشتم.

ببين به کارت مياد...


public class test
{
private static List<encryptString> charList = new List<encryptString>();

public string replaceCharacters(string InputString)
{
getCharsList();
//
foreach (encryptString item in charList)
{
InputString.Replace(item.val1, item.val2);
}
//
return InputString;
}
private void getCharsList()
{
string[] val1List = { "a", "b", "c", "d" };
string[] val2List = { "e", "f", "g", "h" };
//
foreach (string item in val1List)
{
charList.Add(new encryptString { val1 = item.ToString(), val2 = val2List.GetValue(item.IndexOf(item)) });
}
}

}
public class encryptString
{
private string _val1, _val2;

public string val1
{
get { return _val1; }
set { _val1 = value; }
}
public string val2
{
get { return _val2; }
set { _val2 = value; }
}
}
سوالي بود در خدمتم.

موفق باشيد.

mohsen_f_b
یک شنبه 17 آبان 1388, 20:08 عصر
سلام
ممنونم.
درست حدس زدی برنامه رمزنگاری دارم می نویسم.
برا من یکسری جاهاش خطا می گیره.
اگه بتونی توی یک مثال عملی برام بزاری ممنون می شم.
ان شاالله جبران کنم.



باتشکر

saied_genius
یک شنبه 17 آبان 1388, 22:28 عصر
سلام

اين هم نمونه کامل و عملي و کاملاً تست شده.

سوالي بود در خدمتم.

موفق باشيد.

mohsen_f_b
یک شنبه 17 آبان 1388, 22:44 عصر
سلام
ممنونم از لطفت.
ولی یک مشکل بزرگ.
اگر تو دستورات ، دستور را به شکل زیر تغییر بدی



string val1List = "a,b,c,d";
string val2List = "b,a,g,h";




توی همن مثال خودت بجای اینکه بنویسه

bagh می نویسه aagh توی این قسمت مشکل داره.

باید حرف ها رو تو همون اول دونه دونه چک کنه



این قسمت شو درست کنی همه چیز حل می شه.
منتظرم
باتشکر.

saied_genius
یک شنبه 17 آبان 1388, 23:00 عصر
اين مشکل نيست!!

ببينيد ، اين همون چيزيه که شما مي خواستيد!

گفتي هرچي داره چايگزين کنه.

توي مثال شما اول a با b جايگزين ميشه و رشته مي شود bbcd و سپس b با a جايگزين مي شود و نهايتاً مي شود aagh

حالتي که شما مي گوييد فقط وقتي درست جواب مي دهد که طول رشته ورودي با طول کاراکترها براي چک کردن يکي باشد و کاراکتر اول ورودي جايگزين کاراکتر اول ليست شود و ...

saied_genius
یک شنبه 17 آبان 1388, 23:10 عصر
برايت اصلاحش کردم.

هموني شد که مي خواستي.

سوالي بود در خدمتم.

موفق باشيد.

اَرژنگ
دوشنبه 18 آبان 1388, 05:23 صبح
سلام

اين هم نمونه کامل و عملي و کاملاً تست شده.

سوالي بود در خدمتم.

موفق باشيد.

با تشکر از زحماتتان استفاده از کلاس استاتیک و متدهایه استاتیک خلاف اصول شئیگرائیست، برایه آموزش بهتر است که استفاده نشند. ولی اگر دلیلی برایه استفاده‌ازشان دارید متمایل بشنیدن توضیح شما هستم.

اَرژنگ
دوشنبه 18 آبان 1388, 05:32 صبح
سلام
ممنونم.
درست حدس زدی برنامه رمزنگاری دارم می نویسم.
برا من یکسری جاهاش خطا می گیره.
اگه بتونی توی یک مثال عملی برام بزاری ممنون می شم.
ان شاالله جبران کنم.

باتشکر



این روش برایه نوشتن برنامه رمزنگاری کاملاً اشتباه است، اگر یک برنامه رمزنگاری واقعی میخواهید بنویسید به جایه این گونه روایش به اینجا http://www.dijksterhuis.org/encrypting-decrypting-string/ یک نگاه بندازید.

saied_genius
دوشنبه 18 آبان 1388, 10:51 صبح
اينجا هدف آموزش اصول برنامه نويسي نبوده است (فکر مي کنم به اندازه کافي جاهاي ديگر بحث مي شود) ، هدف نمونه عملي براي اجراي کد مورد نظر بوده است.

من هم به نظرم رسيد يک نمونه بسازم که سريع استفاده شود و فقط جهت اجرا و تست و ديدن چگونگي روند کار کلاس اصلي است. هدف آموزش برنامه نويسي نبوده است.
استفاده از کلاس استاتيک هم در اينجا مشکلي ايجاد نمي کند و دليلي براي استفاده نکردن از آن من نديدم.

اگر به نظر شما کار من خيلي مشکل دارد ، لطف کنيد اصلاح شده برنامه را براي استفاده ديگران قرار دهيد ، تا يک انتقاد سازنده شود.

موفق باشيد.

saied_genius
دوشنبه 18 آبان 1388, 11:04 صبح
این روش برایه نوشتن برنامه رمزنگاری کاملاً اشتباه است، اگر یک برنامه رمزنگاری واقعی میخواهید بنویسید به جایه این گونه روایش به اینجا http://www.dijksterhuis.org/encrypting-decrypting-string/ یک نگاه بندازید.

به نظر من کاملاً اشتباه کلمه درستي نيست. درسته که براي رمزنگاري نبايد از اين روش ها استفاده کرد ولي شايد دوستمون يک کارهايي بخواهند انجام دهند که يکي از مراحل آن اين کار باشد و من مشکلي توي اين نمي بينم.

چون ايشون اگر مي خواستند به دنبال رمزنگار اصلي باشند ، فکر مي کنم کمي بگردند مطلب زياد پيدا کنند ولي سوال ايشون رمز نگاري نبود و فقط پرسيدند چگونه مي شوند کاراکترها را جايگزين يکديگر نمود و من حدس زدم که بخواهند يه جورايي به عنوان رمز نگار استفاده کنند.

موفق باشيد.

mehdi.mousavi
دوشنبه 18 آبان 1388, 11:13 صبح
سلام درست حدس زدی برنامه رمزنگاری دارم می نویسم.

سلام.
این کار اشتباه هستش و با SDL کاملا در تناقضه! اگر شما یک دانشمند ریاضی هستید، بحث فرق می کنه. اما اگر یک برنامه نویس هستید و فقط می خواهید اقدام به Encrypt کردن داده های خاصی کنید، 100% و بدون شک باید از الگوریتمهایی که دانشمندان ریاضی ابداع کردن برای این منظور استفاده کنید.

موفق باشید.

اَرژنگ
دوشنبه 18 آبان 1388, 11:18 صبح
اينجا هدف آموزش اصول برنامه نويسي نبوده است (فکر مي کنم به اندازه کافي جاهاي ديگر بحث مي شود) ، هدف نمونه عملي براي اجراي کد مورد نظر بوده است.

من هم به نظرم رسيد يک نمونه بسازم که سريع استفاده شود و فقط جهت اجرا و تست و ديدن چگونگي روند کار کلاس اصلي است. هدف آموزش برنامه نويسي نبوده است.
استفاده از کلاس استاتيک هم در اينجا مشکلي ايجاد نمي کند و دليلي براي استفاده نکردن از آن من نديدم.

اگر به نظر شما کار من خيلي مشکل دارد ، لطف کنيد اصلاح شده برنامه را براي استفاده ديگران قرار دهيد ، تا يک انتقاد سازنده شود.

موفق باشيد.

اشکال به کار شخصی نیست، ولی به روش استفاده شده‌است، اینکه شما میخواهید کمک کنید قابل ستایش است و از زحماتتان هم تشکر شده بود. ولی همانطوری که گفتم در این توپیک ۲ تا اشکال اساسی بود: ۱.سوال اشتباه بود، و همانطوری که اشاره کردم روشهایه رمزنگاری ربطی به این توپیک ندارند. ۲.چیزی که گفتم انتقاد نبود، به اطلاع رسانی کمبود برایه تازه‌کاران بود، به قول معروف به در میگیم که پنجره بشنفه. ۳.مثال عملی باید به یک حداقل معیارهایه عملی ربط داشته باشد، در این موضوع نمیشه یک مثال عملی فرستاد، دلیلش هم این است که روش از ریشه اشتباه است. اگر هدف واقعا رمزنگاری است، با ساختن یک مثال در این توپیک ما به قابل استفاده بودن از یک روش اشتباه برایه چنین منظوری اعتبار میدیم. ولی اگر هدف یک چیزه تفریحیست، بیخیال روشهایه درست و هر مثالی جوابگو هست. حالا اگر هدف واقعی مشخص بشه میشه بنابرش مثالی فرستاد. موفق باشید

اَرژنگ
دوشنبه 18 آبان 1388, 11:30 صبح
به نظر من کاملاً اشتباه کلمه درستي نيست. درسته که براي رمزنگاري نبايد از اين روش ها استفاده کرد ولي شايد دوستمون يک کارهايي بخواهند انجام دهند که يکي از مراحل آن اين کار باشد و من مشکلي توي اين نمي بينم.

چون ايشون اگر مي خواستند به دنبال رمزنگار اصلي باشند ، فکر مي کنم کمي بگردند مطلب زياد پيدا کنند ولي سوال ايشون رمز نگاري نبود و فقط پرسيدند چگونه مي شوند کاراکترها را جايگزين يکديگر نمود و من حدس زدم که بخواهند يه جورايي به عنوان رمز نگار استفاده کنند.

موفق باشيد.

کاملاً درست نیست و یا تقریباً اشتباه است چطور؟

saied_genius
دوشنبه 18 آبان 1388, 14:02 عصر
چشم ها را بايد شست جور ديگر بايد ديد

نه ، به هيچ وجه اشتباه نيست.

هرکسي يک سياست کاري براي نوشتن برنامه هايش دارد.

مخصوصاً برنامه هايي که مربوط به قفل و رمزنگاري باشد.

اميدوارم متوجه بشويد.

اَرژنگ
دوشنبه 18 آبان 1388, 14:17 عصر
چشم ها را بايد شست جور ديگر بايد ديد

نه ، به هيچ وجه اشتباه نيست.

هرکسي يک سياست کاري براي نوشتن برنامه هايش دارد.

مخصوصاً برنامه هايي که مربوط به قفل و رمزنگاري باشد.

اميدوارم متوجه بشويد.

در سطح پائین شاید، ولی در سطح بالا نه.
اگر فرضمان بر این باشد که با کسانی که قرار است متخصص بشند داریم برخورد میکنیم نمیتوانیم بهشان راه‌هایه آبکی را پیشنهاد کنیم ولی اگر یکی بگه که برایه تفریح یک کاری را میکنه ، اونوقت میشه با گوشزد کردن اینکه روشی که اراعه داده میشه عملی و علمی نیست و فقط برایه تفریح و تنوع پیشنهاد شده جلو رفت.
من پیشفرضم اینه که هر کی اینجاست برایه پیشرفت در حد اعلا اینجاست و نه برایه اینکه فقط سمبل شدن یکچیزی را ببینه. اگر روشی پیشنهاد بدم از تجربه و تحقیق است و بازهم در مورد اینکه باید روش تحقیق بشه را تاکید میکنم.
همین مثال رمزنگاری، کلی تازه‌وارد این را به شکل یک روش درست ببینند و واقعا برایه رمزنگاری استفاده کنند و به چاله بیافتند مقصر کیه؟

در ضمن برنامه هايي که مربوط به قفل و رمزنگاري باشند به سیاست شخصی ربطی ندارند، به دانش و علم رمزنگاری ربط دارند، ایده اینکه هر کی با سیاست شخصی میتونه برنامه‌رمزنگاری بنویسه از حقیقت به دوره.

اميدوارم متوجه بشويد

mohsen_f_b
دوشنبه 18 آبان 1388, 17:21 عصر
سلام
من بحث های رو که دوستان نوشتن خوندم.
قبل از اینکه من این کارو شروع کنم و برنامه رمزنگاری بنویسم در یک تایپ دیگه (http://barnamenevis.org/forum/showthread.php?t=188110)این سوال رو مطرح کردم که چطوری باید بنویسم ولی یک نفر جواب داد و گفت ......خودتون ببینید. (http://barnamenevis.org/forum/showthread.php?t=188110)




http://barnamenevis.org/forum/showthread.php?t=188110



چرا کسی اون موقع چیزی نگفت و از همن اول جلو اشتباه رو نگرفت.
من فقط بخاطر اون جواب بود که از این طریق کارو انجام دادم.
خوب حالا اگه مشکل اینه که روش کار اشتباه خوب تصحیحش می کنیم.
از saied_geniusجان هم خیلی ممنونم.




با اینکه بنظر یکسری دوستان راه اشتباه بود ولی من که خیلی چیزا ازش یاد گرفتم.
خوب ما هم می خوایم به صورت حرفه ای کار کنیم نه آماتور ، بخاطر همین یک توضیح در مورد رمزنگاری بدین تا ماهم یاد بگیریم و آماتوری کار نکنیم.

saied_genius
دوشنبه 18 آبان 1388, 17:30 عصر
در ضمن برنامه هايي که مربوط به قفل و رمزنگاري باشند به سیاست شخصی ربطی ندارند، به دانش و علم رمزنگاری ربط دارند، ایده اینکه هر کی با سیاست شخصی میتونه برنامه‌رمزنگاری بنویسه از حقیقت به دوره.

اينکه من بيايم دو تا لينک بدم براي آموزش رمز نگاري هم زياد به حقيقت نزديک نيست.

وقتي ما به همه بگوييم که تنها راه رمزنگاري توي همين دوتا لينک است و هيچ راه ديگري ندارد و اگر مي خواهيد حرفه اي کار کنيد بايد از اين راه ها برويد هم زياد به حقيقت نزديک نيست.

بعد از مدتي که راه هاي دور زدن اين روش ها پيدا مي شود و مي بينيم که آن چيزي نيست که فکر مي کرديم مقصر کيه؟

من قبلاً هم گفتم ، يک سوالي مطرح شد و من هم در رابطه با سوال ايشون يک پاسخ دادم تا مشکلشان حل شود و گرفتار جستجوي ايور و آن ور نشود ! فکر نمي کنم اين کار مشکلي داشته باشد.
تاپيک هم مربوط به روش هاي رمزنگاري و ديگر مباحث نبوده است، يکبار گفتم باز هم مي گويم يک سوال پرسيده شد ، يک جواب به عنوان راه حل داده شد. شما اول مشکل را با متد static مطرح کرديد.
حالا بحث را بر روي روش هاي رمزنگاري متمرکز کرده ايد در حالي که تاپيک مربوط به هيچکدام از آنها نيست. هر فردي هم که وارد اين تاپيک مي شود معمولاً اول عنوان تاپيک را مي خواند تا ببيند راه حل ارائه شده مربوط به چيست.

حالا ... اصلاً گيريم کل راه پيشنهادي من از پايه مشکل دارد، شما بزرگواري کنيد يک راه حل خوب و ترتميز براي ما بگذاريد به همراه نمونه کد عملي که تمامي حرف هايي که مي زنيد توي آن صدق داشته باشد.

يعني مشکل اين بنده خدا را حل کنيد ، بدون استفاده از متد static و با استفاده از روش هاي معمول و حرفه اي رمز نگاري ...

بي صبرانه منتظر راه حل شما هستم.......

Amir Oveisi
دوشنبه 18 آبان 1388, 17:36 عصر
لینک های زیر رو به ترتیب و با دقت مطالعه کنید:
http://sharpertutorials.com/introduction-to-cryptography/
http://www.c-sharpcorner.com/UploadFile/Suprotim/CryptographyInDotNET11282005053700AM/CryptographyInDotNET.aspx
http://msdn.microsoft.com/en-us/magazine/cc164055.aspx
http://www.codeproject.com/KB/security/dotnetcryptog.aspx

حتما وقت بذارین و اینارو مطالعه کنید.
موفق باشید

Saeed.Masoumi
دوشنبه 18 آبان 1388, 17:44 عصر
سلام
این چیزی که شما می خواین یک چیزی مشابه الگوریتم ROT13 (http://en.wikipedia.org/wiki/ROT13) است.
هرچند از ضعیف ترین انواع رمز گذاری است.
به این نوع رمز گذاری ها در اصطلاح substitution cipher (http://en.wikipedia.org/wiki/Substitution_cipher)گفته می شود.
حالا اگر از این روش به اضافه روشهای دیگه استفاده کنید میشه یک رمز گذاری قوی.
برای همین الگوریتم ROT13 یک مثال برای می نویسم ببین:(سریع نوشتم به احتمال بسیار زیاد اصلا بهینه نیست)



private string ROT13(string OrginalText)
{
char[] LowerFirst = "abcdefghijklm".ToCharArray();
char[] UpperFirst = "abcdefghijklm".ToUpper().ToCharArray();
char[] LowerSecond = "nopqrstuvwxyz".ToCharArray();
char[] UpperSecond = "nopqrstuvwxyz".ToUpper().ToCharArray();
string Output = null;
foreach (char c in OrginalText)
{
if ((int)c >= 97 && (int)c <= 122) //lower case
{
for (int index = 0; index < 14; index++)
{
if (LowerFirst[index] == c)
{
Output += LowerSecond[index].ToString();
break;
}
if (LowerSecond[index] == c)
{
Output += LowerFirst[index].ToString();
break;
}
}
}
else
{
for (int index = 0; index < 14; index++)
{
if (UpperFirst[index] == c)
{
Output += UpperSecond[index].ToString();
break;
}
if (UpperSecond[index] == c)
{
Output += UpperFirst[index].ToString();
break;
}
}
}
}
return Output;
}

captain_black81
دوشنبه 18 آبان 1388, 17:57 عصر
بنظرم مشکل شما اینه که استرینگ رو هربار بازای هر حرف میخونید
اینطوری در هر بار خوندن یهسری قدیمین و یه سری هم جدید که تشخیصش غیر ممکنه

بهتره در یه حلقه حرف بحرف استرینگو بخونید و بعد از تبدیل به ته استرینگ دومی بچسبونید
در نهایت استرینگ اول تبدیل میشه به استرینگ دوم
مثلا تو مثال bagh

string[] val1List = { "a", "b", "c", "d" };
string[] val2List = { "e", "f", "g", "h" };

بترتیب
b>f
a>e
g>c
h>d
و شما داری fecd

mehdi.mousavi
دوشنبه 18 آبان 1388, 18:33 عصر
سلام چرا کسی اون موقع چیزی نگفت و از همن اول جلو اشتباه رو نگرفت.

سلام.
میدونید چرا؟ دلیلش میتونه یکی از موارد زیر باشه:


اعضای این سایت عموما فرصت ندارن که تک تک پاسخها رو نگاه کنن و درست/نادرست بودنش رو تذکر بدن...
برخی اوقات، پاسخها چنان روشن هستن که کسی رغبت به پاسخ دادن به اونها نمی کنه. چنین سوالاتی جزء بدیهیات کار هستش و تو هر کتاب ساده ای پاسخ به اون سوالات پیدا میشه.
بعضیها هم، از بس یک نکته رو تکرار کردن، دیگه حوصله تکرار اونو در تاپیکهای جدید ندارن و به آرامی از کنار تاپیک میگذرن... مثلا من در مورد استفاده از DoEvents و Thread ها به این نقطه رسیدم.
و ...


من فقط بخاطر اون جواب بود که از این طریق کارو انجام دادم. دیگه این اشتباه رو مرتکب نشید. برای حصول اطمینان از صحت یک پاسخ، ابتدا به تاریخچه پاسخدهنده سوال رجوع کنید. اما به یاد داشته باشید که حتی بهترین ها هم اشتباه می کنن...


خوب حالا اگه مشکل اینه که روش کار اشتباه خوب تصحیحش می کنیم.

همونطوریکه قبلا هم بهتون گفتم، باید شما به SDL رجوع کنید تا با چرخه توسعه امنیتی یک برنامه آشنا بشید. کتب Michael Howard کتابهای با ارزشی هستن که پاسخگوی بسیاری از این نگرانیهاست.


یک توضیح در مورد رمزنگاری بدین تا ماهم یاد بگیریم و آماتوری کار نکنیم.
Michael Howard در کتاب Writing Secure Code روشهای صحیح نوشتن یک کد امن رو بهتون آموزش میده. بخشی از این آموزش هم در مورد الگوریتمها و ... رمزگذاری هستش. ابتدا کتب نوشته شده توسط ایشون رو خریداری کرده، بخونید و اونوقت اگر سوالی بود در این انجمن مطرح کنید. در غیر اینصورت، هرگز از این گودال بیرون نخواهید اومد.

اَرژنگ
چهارشنبه 20 آبان 1388, 08:34 صبح
اينکه من بيايم دو تا لينک بدم براي آموزش رمز نگاري هم زياد به حقيقت نزديک نيست.

چرا که نه؟ اگر جزوه تخصصانتان نیست بفرستید جایی که متخصصانش هستند.



وقتي ما به همه بگوييم که تنها راه رمزنگاري توي همين دوتا لينک است و هيچ راه ديگري ندارد و اگر مي خواهيد حرفه اي کار کنيد بايد از اين راه ها برويد هم زياد به حقيقت نزديک نيست.

بعد از مدتي که راه هاي دور زدن اين روش ها پيدا مي شود و مي بينيم که آن چيزي نيست که فکر مي کرديم مقصر کيه؟


یعنی اینکه در جایی که ما متخصص نیستیم و بقیه به ما بشکل یک کسی که یک چیزی میداند نگاه میکنند باعث گمراهیشان نشیم.
رمزنگاری تخصص میخواهد، کسانیکه که به رمزنگاری احتیاج دارند یا باید از یک متخصص کمک بگیرند و یا اینکه هم خودشان متخصص باشند.
اینکه بعد از مدتی راه دور زدن روشی پیدا میشه جزوه مباحث ابتدائی در رمزنگاری است، کسی که ازش استفاده میکنه باید شرائط استفاده را بداند، نه اینکه به حرف یک نفر که در این زمینه بهش یک چیزی را پیشنهاد داده و همه عواقبش را نگفته نادانسته جلو بره.

چیزی که درست نیست این است که در قسمتی که ممکن است احتیاج به یک متخصص در یک زمینه خاصی باشد و اگر در اون زمینه ما متخصص نیستیم جواب بدیم.
بار اول که سوال را دیدم به نظر اومد برایه تفریح دارند یکچیزی انجام میدند، من از گفتن اینکه دلیل سوال چیست و قصد واقعی برایه پرسیدن سوال‌هایی که روش استاندارد برنامه‌نویسی نیست خسته‌ام. به خاطر همین هم اگر سوالی که پرسیده شده به نظر یک سوال کاری نباشد فرض میکنم که برایه تفریح پرسیده شده.
دیگران هم از سوال پرسی من خسته شدن، اینکه به زور بخوام از یکی مشکلش را دربیارم بیرون که بتونم کمک کنم کاره ناامید کننده ایست.

مقصر کسی است که به یک نفر تازه وارد بدونه درک کامل مشکلش راه اشتباه را نشان بده.



من قبلاً هم گفتم ، يک سوالي مطرح شد و من هم در رابطه با سوال ايشون يک پاسخ دادم تا مشکلشان حل شود و گرفتار جستجوي ايور و آن ور نشود ! فکر نمي کنم اين کار مشکلي داشته باشد.
تاپيک هم مربوط به روش هاي رمزنگاري و ديگر مباحث نبوده است، يکبار گفتم باز هم مي گويم يک سوال پرسيده شد ، يک جواب به عنوان راه حل داده شد.


و از کلمه رمزنگاری استفاده شد، و همانطوری که گفتم رمزنگاری مبحثی است جدی، بدانه درک جوانب و محیطی که قرار است ازش استفاده بشه، جواب ندادن از جواب دادن بهتر است.
فرض کنید شما یک متخصصید و ایشان هم یک متخصص ، اگر از زمینه همدیگر آشنا نیستید به هم کمکی نمیتوانید داشته باشید.

راه حل اراعه داده شده بدانه در نظر گرفتن شرائط و محیطی که قرار است استفاده بشه اراعه شد، همانطوری که جناب mehdi6755 فرمودند، به این روش میگند شیفره سزار، برایه اسباب بازی خوبه ولی اگر یکی دارد میگه که رمزنگاری میخواهد کار کند جواب درست این است که :
۱.این رمزنگاری نیست، برایه تفریح و خنده بکار میاد.
۲.برایه رمزنگاری مطالعه و تخصص لازم است، همانطوری که اگر ما بلد نیستیم ماشین تعمییر کنیم ، به یکی نمیگیم بریم سفر اگر در راه ماشینت خراب شد کمکت میکنیم.
پس در جایی که تخصص نداریم ما حق کمک کردن نداریم



شما اول مشکل را با متد static مطرح کرديد.

هنوز هم مشکل است، از لحاض برنامه‌نویسی هنوز هم درست نیست.



حالا بحث را بر روي روش هاي رمزنگاري متمرکز کرده ايد در حالي که تاپيک مربوط به هيچکدام از آنها نيست. هر فردي هم که وارد اين تاپيک مي شود معمولاً اول عنوان تاپيک را مي خواند تا ببيند راه حل ارائه شده مربوط به چيست.


من توپیک را خواندم، ولی چیزی که توجهم را جلب کرد این بود:

حتماً مي خواي يک جورايي رمز نگاري کني!
برات يه نمونه الان نوشتم.





درست حدس زدی برنامه رمزنگاری دارم می نویسم.
برا من یکسری جاهاش خطا می گیره.
اگه بتونی توی یک مثال عملی برام بزاری ممنون می شم.





به جز اینکه استنباط کنیم که در مورد رمزنگاری دارد صحبت میشه چه چیز دیگری به نظر میاد؟

و همانطوری هم که mehdi6755 فرمودند، رمزنگاری کاره تخصصی است، اگر یکی دارد داد میزنه که دکتر لازم دارد ما نمیریم کمک کنیم، میریم براش دکتر پیدا کنیم.



حالا ... اصلاً گيريم کل راه پيشنهادي من از پايه مشکل دارد، شما بزرگواري کنيد يک راه حل خوب و ترتميز براي ما بگذاريد به همراه نمونه کد عملي که تمامي حرف هايي که مي زنيد توي آن صدق داشته باشد.


مشکل اساسی راه حل پیشنهادی شما و یا من نیست. من اشکالاتی را که واضح به چشمم اومد گفتم. اگر در این مدت پژوهشی بر اشکالات استفاده از روشهایه استاتیک انجام شده و سوالی در موردش باشد جواب میدم.
در مورد ساختن یک مثال عملی: بدانه دانستن مشخصات بیشتر در مورد مشکل اصلی، حتی به اینکه در چه زمینه‌ای باید پژوهش کنند را نمیتوانم جواب بدم چه برسه به اینکه یک مثال عملی سمبل کنم و به ایشان ایده اینکه به اعتبار به حرف من بعداً به مشکل بیافتند را بدم.





يعني مشکل اين بنده خدا را حل کنيد ، بدون استفاده از متد static و با استفاده از روش هاي معمول و حرفه اي رمز نگاري ...
بي صبرانه منتظر راه حل شما هستم.......

اینکه نیتمان کمک کردن باشد خوب است ولی در جایی که تخصص نداریم نباید پا بزاریم، فقط به اینکه در یک جوانب چیزی میدانیم به ما اجازه این را نمیده که در جوانبی که تخصص نداریم دخالت کنیم.
هر چی که من گفتم چیزهایی بود که از درست بودنشان دلیل و آگاهی دارم، برایه اینکه سعی کنم به یکی کمک کنم نمیتوانم که یک چیزی که درمورد مختصاتش اطلاعات ندارم و از جوانب عرضه‌اش خبر ندارم سمبل کنم و به خودم بگم که کمک کردم.
اینجا بیشترین زمانم به اینکه مشکل را درک کنم هدر میره، تعداد باری هم که به زور بالاخره متوجه شدم که اصلاً توپیک ربطی به مشکل نداشته و مشکل چیزه دیگری بود آدم را دلسرد میکنه (سوایه کسانی که حتی به خودشان زحمت جواب دادن برایه کمک به خودشان را هم نمیدن )
هدف اشکال گرفتن به پستهایه دیگران نیست، بالا نگهداشتن سطح این فروم است، اگر ما از اشکالاتی باخبریم و به اطلاع دیگران نرسانیم فایده‌مان چیه؟
از زمانی که در این فروم شروع کردم خیلی اشخاص فوق‌العاده که ازشان هم کلی یاد گرفتم دیگر اینجا نیستند.
در مورد اشتباه بودن روشهایه استاتیک بارها اینجا بحث شده، ولی همانطوری که که mehdi6755 فرمودند:
•بعضیها هم، از بس یک نکته رو تکرار کردن، دیگه حوصله تکرار اونو در تاپیکهای جدید ندارن و به آرامی از کنار تاپیک میگذرن.
اصل مطلب این است:
۱.اگر در زمینه‌ای تخصص نداریم ولی میدانیم کجا متخصصا هستند بفرستیمشان اونجا.
۲.با نشان دادن اشکالات روشها سطح فروم را بالا نگه داریم.
۳.بدانه دانستن شرائطی که یک مشکل باید درش حل بشه یک جواب نفرستیم، اگر هم فرستادیم اشکالاتی را هم که ممکنه داشته باشد و ما میدانیم را هم بازگو کنیم وگرنه ممکن بنابر اعتبار ما پیش برن و گمراه بشند.

تنها راه حل من در این توپیک این است:
شرائط مسئله مشخص شود، اگر احتیاج به یک چیزه تفننی است هر جوابی خوب است، ولی اگر هدف ساخت یک چیزه با معیار است باید از متخصصان کمک گرفته بشه.
من در زمینه ساختمانی میتونم کمک کنم. ولی در قسمت رمزنگاری بدانه یک سری پژوهش جدی دخالت نمیکنم.

مهمترین کمک من این است که اگر چیزی ببینم که میدونم درست نیست، علناً میگم که همه بدانند و اگر کسی هم نظر دیگری در موردش داشته باشد بشنفم.

saied_genius
چهارشنبه 20 آبان 1388, 10:57 صبح
سلام
حرف هاي شما کاملاً منطقي است.

در مورد رمز نگاري هم ، من هنوز هم فکر نمي کنم دوستمان بخواهد از اين روش براي يک کار جدي استفاده کنند (حداقل از اين روش به تنهايي)

اميدوارم که خودشان مسئله را براي همه روشن کنند تا در صورتي که فقط جهت يک برنامه شخصي و تفريحي است ، ديگران هم مطلع شوند . در آن صورت حداقل از لحاظ رمز نگاري يک کار شخصي به حساب مي آيد نه يک کار تخصصي و نياز به تخصص.

من نمي خواهم بگويم در مسئله رمزنگاري تخصص دارم يا ندارم ، تنها دليل پاسخ دادن من هم اين بود که احتمال مي دادم (و هنوز هم احتمال مي دهم) که دوستمان براي رمز نگاري از اين روش (به تنهايي) نمي خواهند استفاده کنند و هدف از بکارگيري آن فقط براي يک برنامه شخصي است نه يک برنامه تخصصي.

موفق باشيد.

اَرژنگ
سه شنبه 26 آبان 1388, 10:13 صبح
با تشکر از زحماتتان استفاده از کلاس استاتیک و متدهایه استاتیک خلاف اصول شئیگرائیست، برایه آموزش بهتر است که استفاده نشند. ولی اگر دلیلی برایه استفاده‌ازشان دارید متمایل بشنیدن توضیح شما هستم.

با پوزش از جناب saied_genius که از متدهایه استاتیک اشکال گرفتم ولی یک نمونه سازنده نشان ندادم
این لینک http://barnamenevis.org/forum/showthread.php?p=849782#post849782 نشان دهنده این است که روشهایه غیره شیگرایی را حتی در کتابهایه برنامه‌نویسی سی‌شارپ چاپ میکنند!
همانطوری که همیشه میگم : اشکالات بر روشها هست و اگر حتی کتابهایه برنامه‌نویسی روش اشتباه را نشان میدن من فقط میتونم اشکال روش را به جلب نظر بیارم و اشکال به کسی نمیگرم!

خوش باشید