02/10/2018, 11:36
[C#] Hướng dẫn sử dụng thuật toán mã hóa và giải mã Atom-128 algorithm
Trong các bài viết trước mình đã hướng dẫn các bạn sử dụng rất nhiều thuật toán mã hóa: Md5, RSA, DES, AES, Binary, SHA ... Bài viết hôm nay mình sẽ tiếp tục hướng dẫn các bạn sử dụng một thuật toán mã hóa nữa là thuật toán mã hóa Atom-128 C# . ...
Trong các bài viết trước mình đã hướng dẫn các bạn sử dụng rất nhiều thuật toán mã hóa: Md5, RSA, DES, AES, Binary, SHA...
Bài viết hôm nay mình sẽ tiếp tục hướng dẫn các bạn sử dụng một thuật toán mã hóa nữa là thuật toán mã hóa Atom-128 C#.
Mình sẽ chia sẽ hai hàm cho các bạn sử dụng:
1. Source code hàm Encode Atom-128
public static string Atom128Encode(string input) { string key = "/128GhIoPQROSTeUbADfgHijKLM+n0pFWXY456xyzB7=39VaqrstJklmNuZvwcdEC"; StringBuilder result = new StringBuilder(); int i = 0; int[] indexes = new int[4]; int[] chars = new int[3]; do { chars[0] = i + 1 > input.Length ? 0 : (int)input[i++]; chars[1] = i + 2 > input.Length ? 0 : (int)input[i++]; chars[2] = i + 3 > input.Length ? 0 : (int)input[i++]; indexes[0] = chars[0] >> 2; indexes[1] = ((chars[0] & 3) << 4) | (chars[1] >> 4); indexes[2] = ((chars[1] & 15) << 2) | (chars[2] >> 6); indexes[3] = chars[2] & 63; if ((char)chars[1] == 0) { indexes[2] = 64; indexes[3] = 64; } else if ((char)chars[2] == 0) { indexes[3] = 64; } foreach (int index in indexes) { result.Append(key[index]); } } while (i < input.Length); return result.ToString(); }
2. Hàm giải mã thuật toán Atom-128
public static string Atom128Decode(string input) { string key = "/128GhIoPQROSTeUbADfgHijKLM+n0pFWXY456xyzB7=39VaqrstJklmNuZvwcdEC"; StringBuilder result = new StringBuilder(); int[] indexes = new int[4]; int[] chars = new int[3]; int i = 0; do { indexes[0] = key.IndexOf(input[i++]); indexes[1] = key.IndexOf(input[i++]); indexes[2] = key.IndexOf(input[i++]); indexes[3] = key.IndexOf(input[i++]); chars[0] = (indexes[0] << 2) | (indexes[1] >> 4); chars[1] = (indexes[1] & 15) << 4 | (indexes[2] >> 2); chars[2] = (indexes[2] & 3) << 6 | indexes[3]; result.Append((char)chars[0]); if (indexes[2] != 64) result.Append((char)chars[1]); if (indexes[3] != 64) result.Append((char)chars[2]); } while (i < input.Length); return result.ToString(); } Usage:
3. Cách sử dụng thuật toán
string encodedString = Atom128Encode("http://laptrinhvb.net"); string decodedString = Atom128Decode(encodedString);
HAVE FUN :)