Cách tạo chuỗi mã (Encrypt) từ 1 hàm giải mã có sẵn (Decrypt)
Mọi người cho mình hỏi một chút với ạ. Sếp cho mình một hàm Decrypt như này. Và làm hàm Encrypt còn lại .Có mẫu thử và kết quả ở dưới. Chi tiết câu hỏi bên dưới ạ. Có sourcecode của mình .Cám ơn mọi người.
public string Decrypt(string chuoimahoa, string khoa)
{
string result = "";
try
{
RijndaelManaged aes = new RijndaelManaged();
aes.KeySize = 256;
aes.BlockSize = 128;
aes.Padding = PaddingMode.PKCS7;
aes.Mode = CipherMode.CBC;
aes.Key = Convert.FromBase64String(khoa);
byte[] bytes = Convert.FromBase64String(chuoimahoa);
Dictionary<string, string> dictionary = JsonConvert.DeserializeObject<Dictionary<string, string>>(Encoding.UTF8.GetString(bytes));
aes.IV = Convert.FromBase64String(dictionary["iv"]);
if (HmacSHA256(dictionary["iv"] + dictionary["value"], aes.Key) != dictionary["mac"])
{
return "";
}
ICryptoTransform cryptoTransform = aes.CreateDecryptor(aes.Key, aes.IV);
byte[] array = Convert.FromBase64String(dictionary["value"]);
byte[] array2 = cryptoTransform.TransformFinalBlock(array, 0, array.Length);
string[] array3 = Encoding.UTF8.GetString(array2, 0, array2.Length).Split('.');
if (array3.Length == 3)
{
return array3[1];
}
return result;
}
catch (Exception)
{
return "";
}
}
string khoa = "omZCF+K4xZnye1vuBZ7K03k+Gx3D6tn1EZabRTCSzJU=";
string stext = "18198000501212";
string chuoimahoa = "eyJpdiI6IlA4dlJpaXJ0aFlDeXZOdWdZcGFodmc9PSIsInZhbHVlIjoiZm03dGZiMXNYcFFhT1JQTXFLZENXQUd5bmROSTV3MEFsTEpwRkhmT2RSVFwvWTQ0NTR6bWt3cVFXTnJsTGVMS3AiLCJtYWMiOiI0NWNjZjNhZWEzYmIzZGQ2ZDA2ZjE5ZTk1NzI0ZmMyZDU4ZDI2MjI1MDdjMmE1MWJiZjlkYjFkNWNiMjA4NzAwIn0=";
Sếp nói không thay đổi gì hàm Decrypt , và tạo hàm Encrypt để tạo chuoimahoa từ stext và khoa trên. mình chịu rồi nó làm khổ mình 2 ngày nay rồi. mọi người giúp mình với.
CÁM ƠN MỌI NGƯỜI RẤT NHIỀU.
File đính kèm có câu hỏi chi tiết bên trong.
https://drive.google.com/file/d/1Da7vYUALQYand8-F5thyUlhLZd6E1n6N/view?usp=sharing
public string Decrypt(string chuoimahoa, string khoa)
{
string result = "";
try
{
RijndaelManaged aes = new RijndaelManaged();
aes.KeySize = 256;
aes.BlockSize = 128;
aes.Padding = PaddingMode.PKCS7;
aes.Mode = CipherMode.CBC;
aes.Key = Convert.FromBase64String(khoa);
byte[] bytes = Convert.FromBase64String(chuoimahoa);
Dictionary<string, string> dictionary = JsonConvert.DeserializeObject<Dictionary<string, string>>(Encoding.UTF8.GetString(bytes));
aes.IV = Convert.FromBase64String(dictionary["iv"]);
if (HmacSHA256(dictionary["iv"] + dictionary["value"], aes.Key) != dictionary["mac"])
{
return "";
}
ICryptoTransform cryptoTransform = aes.CreateDecryptor(aes.Key, aes.IV);
byte[] array = Convert.FromBase64String(dictionary["value"]);
byte[] array2 = cryptoTransform.TransformFinalBlock(array, 0, array.Length);
string[] array3 = Encoding.UTF8.GetString(array2, 0, array2.Length).Split('.');
if (array3.Length == 3)
{
return array3[1];
}
return result;
}
catch (Exception)
{
return "";
}
}
string khoa = "omZCF+K4xZnye1vuBZ7K03k+Gx3D6tn1EZabRTCSzJU=";
string stext = "18198000501212";
string chuoimahoa = "eyJpdiI6IlA4dlJpaXJ0aFlDeXZOdWdZcGFodmc9PSIsInZhbHVlIjoiZm03dGZiMXNYcFFhT1JQTXFLZENXQUd5bmROSTV3MEFsTEpwRkhmT2RSVFwvWTQ0NTR6bWt3cVFXTnJsTGVMS3AiLCJtYWMiOiI0NWNjZjNhZWEzYmIzZGQ2ZDA2ZjE5ZTk1NzI0ZmMyZDU4ZDI2MjI1MDdjMmE1MWJiZjlkYjFkNWNiMjA4NzAwIn0=";
Sếp nói không thay đổi gì hàm Decrypt , và tạo hàm Encrypt để tạo chuoimahoa từ stext và khoa trên. mình chịu rồi nó làm khổ mình 2 ngày nay rồi. mọi người giúp mình với.
CÁM ƠN MỌI NGƯỜI RẤT NHIỀU.
File đính kèm có câu hỏi chi tiết bên trong.
https://drive.google.com/file/d/1Da7vYUALQYand8-F5thyUlhLZd6E1n6N/view?usp=sharing