Advertisement
Guest User

Untitled

a guest
Apr 12th, 2015
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.67 KB | None | 0 0
  1. static void Main(string[] args)
  2.         {
  3.             while (true)
  4.             {
  5.                 Console.Write("DATA: ");
  6.                 String dataStr = Console.ReadLine();
  7.                
  8.                 byte[] dataStrBytes = Encoding.ASCII.GetBytes(dataStr);
  9.                 byte[] dataBytes;
  10.  
  11.                 if (dataStrBytes.Length % 8 > 0)
  12.                 {
  13.                     dataBytes = new byte[dataStrBytes.Length + (dataStrBytes.Length % 8)];
  14.                 }
  15.                
  16.                 else
  17.                 {
  18.                     dataBytes = new byte[dataStrBytes.Length];
  19.                 }
  20.  
  21.                 dataStrBytes.CopyTo(dataBytes, 0);
  22.  
  23.                 Console.WriteLine("dataBytes.Length: " + dataBytes.Length);
  24.                 Console.WriteLine("dataBytes[]: " + BitConverter.ToString(dataBytes));
  25.                
  26.                 if(BitConverter.IsLittleEndian)
  27.                 {
  28.                     Array.Reverse(dataBytes);
  29.                 }
  30.  
  31.                 UInt32[] dataArr = new UInt32[dataBytes.Length / 4];
  32.  
  33.                 for (int i = 0; i < dataArr.Length; i++)
  34.                 {
  35.                     dataArr[i] = BitConverter.ToUInt32(dataBytes, i * 4);
  36.                 }
  37.  
  38.                 // Key
  39.  
  40.                 Console.Write("KEY: ");
  41.                 String keyStr = Console.ReadLine();
  42.  
  43.                 byte[] keyBytes = new byte[16];
  44.                 Encoding.ASCII.GetBytes(keyStr).CopyTo(keyBytes, 0);
  45.  
  46.                 Console.WriteLine("keyBytes[]: " + BitConverter.ToString(keyBytes));
  47.  
  48.                 if(BitConverter.IsLittleEndian)
  49.                 {
  50.                     Array.Reverse(keyBytes);
  51.                 }
  52.  
  53.                 UInt32[] keyArr = new UInt32[4];
  54.  
  55.                 for (int i = 0; i < 4; i++)
  56.                 {
  57.                     keyArr[i] = BitConverter.ToUInt32(keyBytes, i * 4);
  58.                 }
  59.  
  60.                 Console.WriteLine(keyArr[3].ToString() + " " + keyArr[2].ToString() + " " + keyArr[1].ToString() + " " + keyArr[0].ToString());
  61.  
  62.                 Encrypt(dataArr, keyArr);
  63.             }
  64.         }
  65.  
  66.         public static void Encrypt(uint[] v, uint[] k)
  67.         {
  68.             uint y = v[0];
  69.             uint z = v[1];
  70.             uint sum = 0;
  71.             uint delta = 0x9E3779B9;
  72.             uint n = 32;
  73.  
  74.             while (n-- > 0)
  75.             {
  76.                 y += (z << 4 ^ z >> 5) + z ^ sum + k[sum & 3];
  77.                 sum += delta;
  78.                 z += (y << 4 ^ y >> 5) + y ^ sum + k[sum >> 11 & 3];
  79.             }
  80.  
  81.             v[0] = y;
  82.             v[1] = z;
  83.  
  84.             Console.WriteLine("RESULT: " + v[0].ToString() + " " + v[1].ToString());
  85.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement