Guest User

Untitled

a guest
Feb 20th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.49 KB | None | 0 0
  1. //.h file code:
  2.  
  3. using namespace System;
  4. using namespace System::Text; //Above Public Class
  5.  
  6. public ref class StairsEncryption
  7. {
  8. public:
  9.     static String ^Crypt(String ^Data, String ^key);
  10.     static array<Byte> ^Crypt(array<Byte> ^Data, array<Byte> ^key);
  11.     static String ^DeCrypt(String ^Data, String ^key);
  12.     static array<Byte> ^DeCrypt(array<Byte> ^Data, array<Byte> ^key);
  13. };
  14.  
  15. //.cpp file code:
  16.  
  17. using namespace System;
  18. using namespace System::Text;
  19.  
  20. String ^StairsEncryption::Crypt(String ^Data, String ^key)
  21. {
  22.   return Encoding::Default->GetString(Crypt(Encoding::Default->GetBytes(Data), Encoding::Default->GetBytes(key)));
  23. }
  24.  
  25. array<Byte> ^StairsEncryption::Crypt(array<Byte> ^Data, array<Byte> ^key)
  26. {
  27.   for (Object ^i = 0; i <= (Data->Length * 2) + key->Length; i++)
  28.   {
  29. Data[i % Data->Length] = Convert::ToByte(Convert::ToInt32((Data[i % Data->Length]) + Convert::ToInt32(Data[(i + 1) % Data->Length])) % 256) ^ key[i % key->Length];
  30.   }
  31.   return Data;
  32. }
  33.  
  34. String ^StairsEncryption::DeCrypt(String ^Data, String ^key)
  35. {
  36.   return Encoding::Default->GetString(DeCrypt(Encoding::Default->GetBytes(Data), Encoding::Default->GetBytes(key)));
  37. }
  38.  
  39. array<Byte> ^StairsEncryption::DeCrypt(array<Byte> ^Data, array<Byte> ^key)
  40. {
  41.   for (Object ^i = (Data->Length * 2) + key->Length; i >= 0; i--)
  42.   {
  43. Data[i % Data->Length] = Convert::ToByte((Convert::ToInt32(Data[i % Data->Length] ^ key[i % key->Length]) - Convert::ToInt32(Data[(i + 1) % Data->Length]) + 256) % 256);
  44.   }
  45.   return Data;
  46. }
Add Comment
Please, Sign In to add comment