Cách tạo chuỗi mã (Encrypt) từ 1 hàm giải mã có sẵn (Decrypt)

krongpak

New Member
09/11/2020
0
2 bài viết
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
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Trong code của bạn thì sếp của bạn đã nhập thêm 2 giá trị vào đầu và cuối chuỗi stext. Bạn kiểm tra xem 2 giá trị đó là gì.

Còn code bạn đang làm đúng rồi chỉ cần giá trị stext đúng.
Bạn thay hàm này nó sẽ qua bước check mac để tiến hành giải mã
upload_2020-11-10_16-7-42.png


upload_2020-11-10_16-8-39.png

Đến đoạn này vì dữ liệu không được thêm trước sau nên mảng nó có 1 phần tử
cái kiểm tra length phía dưới yêu cầu mảng có 3 phần tử không thì trả về rỗng, nếu có 3 phần tử lấy phần tử thứ 2 trong mảng, nên trước khi mã hóa thì cần append giá trị nào đấy vào dữ liệu mã hóa cách nhau bới dấu "."
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  • Thích
Reactions: krongpak
Comment
Trong code của bạn thì sếp của bạn đã nhập thêm 2 giá trị vào đầu và cuối chuỗi stext. Bạn kiểm tra xem 2 giá trị đó là gì.

Còn code bạn đang làm đúng rồi chỉ cần giá chị stext đúng.
Bạn thay hàm này nó sẽ qua bươc check mac để tiến hành giải mã
View attachment 7614

View attachment 7615
Đến đoạn này vì dữ liệu ko được thêm trước sau nên mảng nó có 1 phần tử
cái kiểm tra length phía dưới yêu cầu mảng có 3 phần tử ko thì trả về rỗng, nếu có 3 phần tử lấy phần tử thứ 2 trong mảng, nên trước khi mã hóa thì cần append giá trị nào đấy vào dữ liệu mã hóa cách nhau bới dấu "."

Cám ơn bạn đã hỗ trợ mình. Vậy cái đoạn string stext = "18198000501212" này đã được nối thêm chuỗi cho cả trước sau phải không bạn?
Sau khi mình cho thêm 2 mẫu thử vào thì thấy có "78@vire#12ku" này cố định
Mẫu 1 : 19149000503635 eyJpdiI6IlhPZkNQR21hSXRBNVhWTnBNVnZGOGc9PSIsInZhbHVlIjoiamNhUVRMTWhCajdIWDBvbU1qcFRSd3MzU0RaYkpWNVFneHFwQ21XOThRQUtueWpMdG90blwvSG1TWlpTT0VTUmoiLCJtYWMiOiI0M2Q5NWNiYzlkYzc0ODU1ZDI4NjZmYmRlMzQ5NzdlNWI1YzAyMDE2MTc0Nzk4Y2Q4ZGFlNWQxYjE3YzhjZDQ2In0=
Mẫu 2 : 18198000501211 eyJpdiI6InJRODV2YTNQMTJaOHY3Ym1JeVp5Wmc9PSIsInZhbHVlIjoiNTdiY2dJZmFyalc2akoxUkVQSzl1V2ZUWGRYOXVTeUpcLzFPTTVsU09lRkpHeDR1Q1RaWWFqem5pdHQ5K0c3RHciLCJtYWMiOiI2YTdiMWIyY2NlNGYxNzY1MDYyNjM2NzMyYTUxZWE1MjZiOGM4Yjk3NWQ1YWY4MDBjZWJhOTdlNjZmYjVmOGFiIn0=

cái chuỗi đầu nó không cố định, còn chuỗi cuối cố định
pic.jpg

Vì mình không rành cái nguyên lý của cái loại này nên không biết do đâu mà phát sinh bạn à. Bạn pro bạn giúp cho mình với. 2 mẫu thử mình có được bạn giúp mình truy ra giúp mình với.
Cám ơn bạn nhiều.
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Dữ liệu đầu vào cần mã hóa = cleartext array3[0] + "." + cleartext array3[1] + "." cleartext array3[2]
Bạn cần xem lại cơ chế sinh ra cleartext array3[0] và cleartext array3[2]

Bạn trao đổi với sếp của bạn để biết được cơ chế sinh dữ liệu để thêm vào để tạo ra array3[0] và array3[2].
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  • Thích
Reactions: krongpak
Comment
Có bác nào nhận làm tool reg key để active tool không ạ, vì e có bản crack cần người làm tool reg để dùng ạ, e cảm ơn ạ.
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Bên trên