ecrypt (check, keyBitSet);. clear (MSG_CHECK_PREFIX, check.size () ); (CHECK_MESSAGE_NUMBER [0] == check.toLongArray () [0]) {true;
} false;
} catch (IOException e) {new IOException ("Error in read image", e),
} finally {(raf! = null) {. close ();
}
}
} static void writeNoiseToLSB (RandomAccessFileraf) throws IOException {tail = (int) (raf.length () - raf.getFilePointer ()); [] b = new byte [3]; (inti = 0, i
}. seek (raf.getFilePointer () - 3);. write (b);
}
} static void writeToLSB (byte [] p, BitSet message) {(inti = 0; i
}
} static BitSetreadFromLSB (byte [] p) {= new BitSet (p.length); (inti = 0; i
};
}
}
КлассXOREncoder: class XOREncoder {static BitSet encrypt (BitSet message, BitSet key) {crypt (message, key);
} static BitSet crypt (BitSet message, BitSetkeyBits) {= new BitSet (message.length ()); = 0; bit; (keyBits.size () == 0) {message; p>
} (inti = 0; i
};
} static BitSet decrypt (BitSet cipher, BitSet key) {message = crypt (cipher, key); message;
}
}