Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static void Main(string[] args)
- {
- while (true)
- {
- Console.Write("DATA: ");
- String dataStr = Console.ReadLine();
- byte[] dataStrBytes = Encoding.ASCII.GetBytes(dataStr);
- byte[] dataBytes;
- if (dataStrBytes.Length % 8 > 0)
- {
- dataBytes = new byte[dataStrBytes.Length + (dataStrBytes.Length % 8)];
- }
- else
- {
- dataBytes = new byte[dataStrBytes.Length];
- }
- dataStrBytes.CopyTo(dataBytes, 0);
- Console.WriteLine("dataBytes.Length: " + dataBytes.Length);
- Console.WriteLine("dataBytes[]: " + BitConverter.ToString(dataBytes));
- if(BitConverter.IsLittleEndian)
- {
- Array.Reverse(dataBytes);
- }
- UInt32[] dataArr = new UInt32[dataBytes.Length / 4];
- for (int i = 0; i < dataArr.Length; i++)
- {
- dataArr[i] = BitConverter.ToUInt32(dataBytes, i * 4);
- }
- // Key
- Console.Write("KEY: ");
- String keyStr = Console.ReadLine();
- byte[] keyBytes = new byte[16];
- Encoding.ASCII.GetBytes(keyStr).CopyTo(keyBytes, 0);
- Console.WriteLine("keyBytes[]: " + BitConverter.ToString(keyBytes));
- if(BitConverter.IsLittleEndian)
- {
- Array.Reverse(keyBytes);
- }
- UInt32[] keyArr = new UInt32[4];
- for (int i = 0; i < 4; i++)
- {
- keyArr[i] = BitConverter.ToUInt32(keyBytes, i * 4);
- }
- Console.WriteLine(keyArr[3].ToString() + " " + keyArr[2].ToString() + " " + keyArr[1].ToString() + " " + keyArr[0].ToString());
- Encrypt(dataArr, keyArr);
- }
- }
- public static void Encrypt(uint[] v, uint[] k)
- {
- uint y = v[0];
- uint z = v[1];
- uint sum = 0;
- uint delta = 0x9E3779B9;
- uint n = 32;
- while (n-- > 0)
- {
- y += (z << 4 ^ z >> 5) + z ^ sum + k[sum & 3];
- sum += delta;
- z += (y << 4 ^ y >> 5) + y ^ sum + k[sum >> 11 & 3];
- }
- v[0] = y;
- v[1] = z;
- Console.WriteLine("RESULT: " + v[0].ToString() + " " + v[1].ToString());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement