Пример #1
0
/*
 * Get a string as an input and returns a plain string
 */
std::string base64_decrypt(std::string input)
{
    std::map<char, int> mapping;
    char byte1, byte2, byte3;
    int mapped;
    int32_t binary_datum {0};
    std::string retval;

    mapping = build_reverse_map();

    for(int i = 0; i < input.size(); i += 4){
        std::string datum {input.substr(i, 4)};

        binary_datum = 0;
        for(char c : datum){
            mapped = mapping[c];
            binary_datum |= mapped;
            binary_datum <<= 6;
        }
        binary_datum >>= 6;

        byte1 = (binary_datum % 256);
        binary_datum >>= 8;
        byte2 = (binary_datum % 256);
        binary_datum >>= 8;
        byte3 = (binary_datum % 256);

        retval += byte3;
        retval += byte2;
        retval += byte1;
    }

    return retval;
}
Пример #2
0
void Ioss::Map::build_reverse_map(int processor)
{
  if (map[0] == 1) {
    build_reverse_map(map.size()-1, 0, processor);
  }
}
Пример #3
0
void Ioss::Map::build_reverse_map()
{
  if (map[0] == 1) {
    build_reverse_map(map.size()-1, 0);
  }
}