Доброго времени суток!
Возникла задача зашифровать раздел «своими руками». Алгоритм шифрования не так важен, поэтому пусть будет простейший, например, XOR.
Написал программу на C++:
#include <iostream>
#include <fstream>
int main()
{
std::fstream filestream;
const char key = 0b11111111;
filestream.rdbuf()->pubsetbuf(0, 0);
filestream.open("/dev/sdc1", std::ios_base::binary | std::ios_base::in | std::ios_base::out);
char b;
while (filestream.read(&b, 1))
{
b ^= key;
filestream.seekp((int)filestream.tellp() - 1);
filestream.write(&b, 1);
}
filestream.close();
return 0;
}
Запускать, очевидно, из-под рута. Она работает, и девайс шифруется, но это длится крайне долго даже для флешки объёмом 2Гб.
Подскажите, есть ли более быстрый способ выполнить это? Или просто, как бы это сделали вы.
Спасибо!