mpaymetov / oop-labs

Задания по объектно-ориентированному программированию
0 stars 0 forks source link

Замечания по Crypt #11

Open alexey-malov opened 5 years ago

alexey-malov commented 5 years ago
bool getKeyFromString(const std::string & Str, uint8_t & key)
alexey-malov commented 5 years ago
bool Crypt(std::ifstream& inputFile, std::ofstream &outputFile, const uint8_t key)
{
    uint8_t byte;
    while (inputFile.read(reinterpret_cast<char*>(&byte), 1))
    {
        byte = byte ^ key;
        byte = byte & 0b10000000 >> 2 | byte & 0b01000000 >> 5 | byte & 0b00100000 >> 5 | byte & 0b00010000 << 3 |
            byte & 0b00001000 << 3 | byte & 0b00000100 << 2 | byte & 0b00000010 << 2 | byte & 0b00000001 << 2;
        outputFile.put(byte);
    }
    return true;
}

bool Decrypt(std::ifstream& inputFile, std::ofstream &outputFile, const uint8_t key)
{
    uint8_t byte;
    while (inputFile.read(reinterpret_cast<char*>(&byte), 1))
    {
        byte = byte & 0b10000000 >> 3 | byte & 0b01000000 >> 3 | byte & 0b00100000 << 2 | byte & 0b00010000 >> 2 |
            byte & 0b00001000 >> 2 | byte & 0b00000100 >> 2 | byte & 0b00000010 << 5 | byte & 0b00000001 << 5;
        byte = byte ^ key;
        outputFile.put(byte);
    }
    return true;
}