Шифровать только содержимое файла изображения, а не весь файл
Я создаю приложение, и мне нужно кодировать только содержание изображения. Мне нужно, чтобы файл был еще изображением после преобразования, но показанное изображение не показывалось как оригинал.
Например, я отправлю изображение в зашифрованном виде другому пользователю, и этот сможет показать и изображение (но не оригинал), но исходное изображение было зашифровано в этом файле.
С помощью следующего алгоритма я зашифровал весь файл, и его нельзя открыть как изображение, так как заголовок также зашифрован.
Я использую этот алгоритм, но я не знаю, как только зашифровать данные или как добавить / изменить заголовки изображения в java / android:
public byte[] encrypt_image(Bitmap bm, String password_) {
byte[] encryptedData = null;
try{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] b = baos.toByteArray();
byte[] keyStart = password_.getBytes();
KeyGenerator kgen = KeyGenerator.getInstance("AES");
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG", "Crypto");
sr.setSeed(keyStart);
kgen.init(128, sr);
SecretKey skey = kgen.generateKey();
byte[] key = skey.getEncoded();
// Encrypt
encryptedData = Security.encrypt(key,b);
}catch (Exception e) {
Log.e("encrpyt_image()", e.getMessage());
}
return encryptedData;
}
У любого есть идея о том, как это кодифицировать, я искал в интернете безуспешно.