سلام.
تا جایی که من اطلاع دارم روش های متداولی که برای encrypt کردن یه رشته استفاده میشه، قابلیت برگشت (decrypt) رو ندارند.
مگر اینکه خودتون شخصا اقدام به تولید یه روش encrypt کنید که از ماهیت و نحوه encrypt باخبر باشید تا بتونید رشته رو دوباره decrypt کنید.
اگر فرض بگیریم منظور شما فقط Encrypt کردن بوده می تونید ادامه مطالب رو مطالعه بفرمایید.
برای این کار روش های زیادی وجود داره که با توجه به نیاز و کاربردتون می تونید از اون ها استفاده کنید.
ساده ترین روش برای این کار استفاده از متد GetHashCode() هست که بسادگی قابل استفاده هست (و البته کمتر کسی از اون استفاده میکنه) :
برای تست کردن، 3 تا textbox بذارید و اسم اونها رو TxtInput و TxtResult و TxtRepeatInput بذارید.
برای Encrypt کردن رشته مورد نظر :
TxtResult.Text = TxtInput.Text.GetHashCode().ToString();
و بعد از encrypt کردن زمانیکه میخواید رشته ورودی رو با رشته encrypt شده مقایشه کنید، دوباره باید رشته ورودی رو encrypt کنید و با رشته ذخیره شده مقایسه کنید :
if (TxtRepeatInput.Text.GetHashCode() == TxtResult.Text)
MessageBox.Show("equal");
else
MessageBox.Show("not equal");
-----------------------------------------------------------------------------
روش دیگه ای که میتونم اشاره کنم استفاده از روش MD5 هست که نسبت به روش بالا از امنیت بیشتر برخورداره.
برای این کار ابتدا یه متد بصورت زیر ایجاد کنید (می تونید این متد رو در قالب یه کلاس و بصورت یه dll در بیارید تا مطمئن تر بتونید از اون استفاده کنید) . این متد یک رشته بعنوان ورودی میگیره و یه رشته encrypt شده رو برمیگردونه :
public string MD5Hash(string text)
{
MD5 md5 = new MD5CryptoServiceProvider();
//compute hash from the bytes of text
md5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(text));
//get hash result after compute it
byte[] result = md5.Hash;
StringBuilder strBuilder = new StringBuilder();
for (int i = 0; i < result.Length; i++)
{
strBuilder.Append(result[i].ToString("x2"));
}
return strBuilder.ToString();
}
برای استفاده هم می تونید به این شکل استفاده کنید :
TxtResult.Text = MD5Hash(TxtInput.Text);
و بعد از Encrypt کردن و برای مقایسه رشته ورودی با رشته ذخیره شده (رشته encrypt شده )، دوباره باید رشته ورودی رو encrypt کنید :
if (MD5Hash(TxtRepeatInput.Text) == TxtResult.Text)
MessageBox.Show("ok");
else
MessageBox.Show("no");
روش های دیگه ای هم مثل SHA256 و ... هست که می تونید با جستجوی ساده به اونها دسترسی پیدا کنید.