میلاد قاضی پور
یک شنبه 14 شهریور 1389, 00:36 صبح
سلام . دوستان عزیز خوشبختانه منابع و سورس کدهای همراه با مثال در اینترنت بسیار یافت میشه اما برای اینکه از تمام کلاس ها و متدها هنگام انکریپت کردن بخوام سردر بیارم و الگوریتمهای مورد نظر خودمو جهت این کار پیاده کنم نیاز به یه منبع تئوریک دارم . میخوام مثلا بدونم چرا باید در کدهای آخر پست خط مشخص شده رو توی برنامه داشته باشیم؟
keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key ));
یا چرا اون رشته باید در فایل کانفیگ ذخیره بشه . سوألات بسیار هست که نمیشه برای هرکدومش یه تاپیک جداگونه زد . اگر منابعی میشناسید چه انگلیسی و چه فارسی معرفی کنید که در درک عمیق قضیه کمکم کنه ممنون .
public static string Encrypt(string toEncrypt, bool useHashing)
{
byte[] keyArray;
byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);
System.Configuration.AppSettingsReader settingsReader =
new AppSettingsReader();
// Get the key from config file
string key = (string)settingsReader.GetValue("SecurityKey",
typeof(String));
//System.Windows.Forms.MessageBox.Show(key);
//If hashing use get hashcode regards to your key
if (useHashing)
{
MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
//Always release the resources and flush data
// of the Cryptographic service provide. Best Practice
hashmd5.Clear();
}
else
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.CreateEncryptor();
//transform the specified region of bytes array to resultArray
byte[] resultArray =
cTransform.TransformFinalBlock(toEncryptArray, 0,
toEncryptArray.Length);
//Release resources held by TripleDes Encryptor
tdes.Clear();
//Return the encrypted data into unreadable string format
return Convert.ToBase64String(resultArray, 0, resultArray.Length);
}
keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key ));
یا چرا اون رشته باید در فایل کانفیگ ذخیره بشه . سوألات بسیار هست که نمیشه برای هرکدومش یه تاپیک جداگونه زد . اگر منابعی میشناسید چه انگلیسی و چه فارسی معرفی کنید که در درک عمیق قضیه کمکم کنه ممنون .
public static string Encrypt(string toEncrypt, bool useHashing)
{
byte[] keyArray;
byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);
System.Configuration.AppSettingsReader settingsReader =
new AppSettingsReader();
// Get the key from config file
string key = (string)settingsReader.GetValue("SecurityKey",
typeof(String));
//System.Windows.Forms.MessageBox.Show(key);
//If hashing use get hashcode regards to your key
if (useHashing)
{
MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
//Always release the resources and flush data
// of the Cryptographic service provide. Best Practice
hashmd5.Clear();
}
else
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.CreateEncryptor();
//transform the specified region of bytes array to resultArray
byte[] resultArray =
cTransform.TransformFinalBlock(toEncryptArray, 0,
toEncryptArray.Length);
//Release resources held by TripleDes Encryptor
tdes.Clear();
//Return the encrypted data into unreadable string format
return Convert.ToBase64String(resultArray, 0, resultArray.Length);
}