PDA

View Full Version : سوال: کد کردن اطلاعات



Shahriyar716
سه شنبه 28 دی 1389, 16:12 عصر
چه روش هایی برای کد کردن اطلاعات وجود داره؟
لطفا فقط روش ها، نه پیاده سازی

javad_r_85
سه شنبه 28 دی 1389, 22:41 عصر
MD5 الان بهترینش هست چون یه طرفه و غیر قابل برگشت وهست وامنیت بالایی داره
Encript & Decrip هم هست..

archDevil
سه شنبه 28 دی 1389, 23:08 عصر
سلام دوست عزیز اگه لطف کنی و نحوه پیاده سازیش رو هم بگی خیلی خیلی ممنون می شم به طور دقیق اگه بگی که یاد بگیرم که دیگه بیشتر ممنون می شم:قلب:

javad_r_85
چهارشنبه 29 دی 1389, 00:57 صبح
MD5



using System.Security.Cryptography;

/// <summary>
/// رمز گزاری با الگوی MD5
/// </summary>
/// <param name="originalString">یک رشته را دریافت کرده آن را رمز گذاری میکند</param>
/// <returns>رشته رمز گذاری شده را بر میگرداند</returns>
public string Encrypt(string strToEncrypt)
{
UTF8Encoding ue = new UTF8Encoding();
byte[] bytes = ue.GetBytes(strToEncrypt);

MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] hashBytes = md5.ComputeHash(bytes);

// Bytes to string
return System.Text.RegularExpressions.Regex.Replace
(BitConverter.ToString(hashBytes), "-", "").ToLower();

}

javad_r_85
چهارشنبه 29 دی 1389, 00:57 صبح
sing System.Security.Cryptography;
using System.IO;



static byte[] bytes = ASCIIEncoding.ASCII.GetBytes("ZeroCool");

/// <summary>
/// رمز گزاری
/// </summary>
/// <param name="originalString">یک رشته را دریافت کرده آن را رمز گذاری میکند</param>
/// <returns>رشته رمز گذاری شده را بر میگرداند</returns>
public string Encrypt(string originalString)
{
if (String.IsNullOrEmpty(originalString))
return string.Empty;

DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream,
cryptoProvider.CreateEncryptor(bytes, bytes), CryptoStreamMode.Write);
StreamWriter writer = new StreamWriter(cryptoStream);
writer.Write(originalString);
writer.Flush();
cryptoStream.FlushFinalBlock();
writer.Flush();
return Convert.ToBase64String(memoryStream.GetBuffer(), 0, (int)memoryStream.Length);
}

/// <summary>
/// رمزگشایی
/// </summary>
/// <param name="cryptedString">رشته ای را برای گشایش رمز آن دریافت میکند</param>
/// <returns>مقدار رشته واقعی برگردانده می شود</returns>
public string Decrypt(string cryptedString)
{
if (String.IsNullOrEmpty(cryptedString))
{
throw new ArgumentNullException
("The string which needs to be decrypted can not be null.");
}
DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
MemoryStream memoryStream = new MemoryStream
(Convert.FromBase64String(cryptedString));
CryptoStream cryptoStream = new CryptoStream(memoryStream,
cryptoProvider.CreateDecryptor(bytes, bytes), CryptoStreamMode.Read);
StreamReader reader = new StreamReader(cryptoStream);
return reader.ReadToEnd();
}

mehdi.mousavi
چهارشنبه 29 دی 1389, 01:07 صبح
MD5 الان بهترینش هست چون یه طرفه و غیر قابل برگشت وهست وامنیت بالایی داره

سلام.
6 سال پیش، Michael Howard مرد امنیتی مایکروسافت اعلام کرد که DES، MD4، MD5، و در برخی شرایط SHA1 قابل اعتماد و ایمن نیستن و دیگه نباید از اونها استفاده کرد (بدلیل وجود سایتهایی مثل passcracking.com (http://passcracking.com/)). از اون هنگام تا امروز، دیگه نباید از الگوریتمهای فوق برای Hash کردن اطلاعات استفاده کرد. شما میتونید از SHA256، SHA512 و ... استفاده کنید.

موفق باشید.

javad_r_85
چهارشنبه 29 دی 1389, 10:22 صبح
سلام.
6 سال پیش، Michael Howard مرد امنیتی مایکروسافت اعلام کرد که DES، MD4، MD5، و در برخی شرایط SHA1 قابل اعتماد و ایمن نیستن و دیگه نباید از اونها استفاده کرد (بدلیل وجود سایتهایی مثل passcracking.com (http://passcracking.com/)). از اون هنگام تا امروز، دیگه نباید از الگوریتمهای فوق برای Hash کردن اطلاعات استفاده کرد. شما میتونید از SHA256، SHA512 و ... استفاده کنید.

موفق باشید.

البته واسه این کار هم راههای هست مثلا:

استفاده چندین بار از MD5
یا این که ایتدا با MD5 رمز گذاری کنیم سپس اونا Hash کرده یا اینکه اونا Encrypt کرد.
سیستم مدیریت محتوای جوملا نیز از Shell + MD5 استفاده می کنید.
می تونید یه الگوریتمی ایجاد کنید که تنها خودتون از اون خبر داشته باشید( هکر حتی اگر به داده دست پیدا کنه چون نمی تونه به کد شما دسترسی داشته باشه سخته براش Decode کردن داده ها).