Szyfruj tylko zawartość pliku obrazu, nie cały plik

Tworzę aplikację i muszę wpisać tylko treść obrazu. Potrzebuję, aby plik był nadal obrazem po konwersji, ale obraz nie pokazywał się jako oryginał.

Na przykład wyślę obraz zaszyfrowany do innego użytkownika, a ten będzie mógł wyświetlać i obrazować (ale nie oryginał), ale oryginalny obraz został zaszyfrowany w tym pliku.

Za pomocą następującego algorytmu zaszyfrowałem cały plik i nie można go otworzyć jako obrazu, ponieważ nagłówek jest również zaszyfrowany.

Używam tego algorytmu, ale nie wiem, jak szyfrować dane lub jak dodawać / modyfikować nagłówki obrazu w 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;
}

Każdy ma pomysł, jak to skodyfikować, bez powodzenia szukałem w Internecie.

questionAnswers(1)

yourAnswerToTheQuestion