Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //.h file code:
- using namespace System;
- using namespace System::Text; //Above Public Class
- public ref class StairsEncryption
- {
- public:
- static String ^Crypt(String ^Data, String ^key);
- static array<Byte> ^Crypt(array<Byte> ^Data, array<Byte> ^key);
- static String ^DeCrypt(String ^Data, String ^key);
- static array<Byte> ^DeCrypt(array<Byte> ^Data, array<Byte> ^key);
- };
- //.cpp file code:
- using namespace System;
- using namespace System::Text;
- String ^StairsEncryption::Crypt(String ^Data, String ^key)
- {
- return Encoding::Default->GetString(Crypt(Encoding::Default->GetBytes(Data), Encoding::Default->GetBytes(key)));
- }
- array<Byte> ^StairsEncryption::Crypt(array<Byte> ^Data, array<Byte> ^key)
- {
- for (Object ^i = 0; i <= (Data->Length * 2) + key->Length; i++)
- {
- Data[i % Data->Length] = Convert::ToByte(Convert::ToInt32((Data[i % Data->Length]) + Convert::ToInt32(Data[(i + 1) % Data->Length])) % 256) ^ key[i % key->Length];
- }
- return Data;
- }
- String ^StairsEncryption::DeCrypt(String ^Data, String ^key)
- {
- return Encoding::Default->GetString(DeCrypt(Encoding::Default->GetBytes(Data), Encoding::Default->GetBytes(key)));
- }
- array<Byte> ^StairsEncryption::DeCrypt(array<Byte> ^Data, array<Byte> ^key)
- {
- for (Object ^i = (Data->Length * 2) + key->Length; i >= 0; i--)
- {
- 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);
- }
- return Data;
- }
Add Comment
Please, Sign In to add comment