PDA

View Full Version : سوال: بهترین الگوریتم کدگذاری چی هست ؟



NasimBamdad
جمعه 25 مرداد 1392, 23:50 عصر
سلام .

به دنبال ارتقا سطح علمی خودم ، دارم در مورد Encoding , Decoding و Encrypting و ... اینها تحقیق می کنم

خیلی نیاز میشه که یک داده رو کد کنیم تا امنیت رو بالا ببریم .

در اینترنت و سایت StackOverFlow و ........ تحقیقاتی کردم و سرچ زدم . جالب این بود هر الگوریتمی برای Encode کردن ، یک روش DeCode کردن هم داشت و تابع اش رو نوشته بود .

حالا سوالم اینه که مثلا ما با یک الگوریتم ، رشته مون رو کد کردیم . اگه حدس زده بشه ( که کار سختی نیست ) از چه روش و الگوریتمی استفاده شده ، به راحتی میشه حالت معکوسش رو پیدا کرد و عملا آب یاری بیابان کردیم .

به نظر شما چه باید کرد ؟

یک چیز دیگه ، در مورد AES شندیم که خیلی تعریف می شد ازش . AES - 256 Bit .

و چند جور دیگه ، تفاوت شان چی هست و کدام بهتره ؟ و چه طوری از Decode شدن جلوگیری کرد ؟

مثلا میشه یک Key براش ساخت که امنیت بهتر بشه ؟ و اینکه با نرم افزار هایی مثل Reflector ها میشه سورس رو خواند و در نتیجه الگوریتم Decoding ، تابلو میشه

ممنون میشم کمک کنید !

pouria_bayat
شنبه 26 مرداد 1392, 00:15 صبح
سلام
من مدتی توی امنیت شبکه و سایتهای امنیتی فعالیت داشتم و به این نتیجه رسیدم بهترین الگوریتم الگوریتمی هستش که خود برنامه نویس نوشته باشه و با الگوریتم ها و هش های حاظر مثل Md5 و ... به صورت ترکیبی استفاده بشه فرض شما رشته ای رو دارید ابتدا اونرو با الگوریتم خودتون Encrypt میکنید و اونرو به الگوریتم دیگه ای مثل md5 دوباره Encrypt کنید و سپس برای بازیابی ابتدا اونرو از الگوریتم Md5 به حالت اول(Decrypt( میکنید و دوباره با الگوریتم خودتون این بهترین روشی هست که فکر کنم موثر واقع بشه.

Hajivandian
شنبه 26 مرداد 1392, 00:21 صبح
آخه MD5 که برگشت پذیر نیست که شما بتونی رشته اولیه ات رو برگردونی! :گیج:

pouria_bayat
شنبه 26 مرداد 1392, 00:25 صبح
آخه MD5 که برگشت پذیر نیست که شما بتونی رشته اولیه ات رو برگردونی! :گیج:
منظورم decrypt کردن هستش :
https://www.google.com/search?q=encrypt+md5&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a
http://md5encryption.com/
متن:http://barnamenevis.org
Encrypt Text:c437ac22116fdbb2c19a6e520d2a1cac
Decrypted Text: http://barnamenevis.org

pouria_bayat
شنبه 26 مرداد 1392, 00:31 صبح
اینم کد Decrypt کردن MD5 با C#‎ : البته بازم میگم بهترین الگوریتم کدی هستش که خود برنامه نویس اونرو مینویسه:


ublic static string Decrypt(string cipherString, bool useHashing) { byte[] keyArray; //get the byte code of the string byte[] toEncryptArray = Convert.FromBase64String(cipherString); System.Configuration.AppSettingsReader settingsReader = new AppSettingsReader(); //Get your key from config file to open the lock! string key = (string)settingsReader.GetValue("SecurityKey", typeof(String)); if (useHashing) { //if hashing was used get the hash code with regards to your key MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider(); keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key )); //release any resource held by the MD5CryptoServiceProvider hashmd5.Clear(); } else { //if hashing was not implemented get the byte code of the key keyArray = UTF8Encoding.UTF8.GetBytes(key); } TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider(); //set the secret key for the tripleDES algorithm tdes.Key = keyArray; //mode of operation. there are other 4 modes. //We choose ECB(Electronic code Book) tdes.Mode = CipherMode.ECB; //padding mode(if any extra byte added) tdes.Padding = PaddingMode.PKCS7; ICryptoTransform cTransform = tdes.CreateDecryptor(); byte[] resultArray = cTransform.TransformFinalBlock( toEncryptArray, 0, toEncryptArray.Length); //Release resources held by TripleDes Encryptor tdes.Clear(); //return the Clear decrypted TEXT return UTF8Encoding.UTF8.GetString(resultArray); }

NasimBamdad
یک شنبه 27 مرداد 1392, 11:36 صبح
خوب میشه آموزش داد که چه طوری خودمون الگوریتم بسازیم ؟! به نظر شما راه حلش چیه ؟!

pouria_bayat
یک شنبه 27 مرداد 1392, 13:05 عصر
به نظرم این روش روشی ابتکاریه و باید خود برنامه نویس بدونه چه جوری داده هاشو به کد تبدیل کنه ولی اگر من میبودم شاید از یکسری الگوریتمهای فشرده سازی هم استفاده میکردم.
از این لینک هم میتونید استفاده کنید:

http://stackoverflow.com/questions/2503433/how-to-create-encryption-key-for-encryption-algorithms