简体   繁体   中英

Steganography in android with native Java library support issue

I am developing a multi-platform application which will use the "F5 Steganography" to hide a message inside a JPG image captured from the device's camera. Currently my objectives are to make an android application and desktop Java application. I have found the jar file of "F5 Steganography" from here I have successfully implemented the library in Java desktop application but the problem is coming in android implementation. I have imported the jar file in the android project but in the embedding and extraction of the message, I am facing issues on android.

  • Extract issue

On Extract, the issue I am facing now is that the imported library is using "sun.security.provider.SecureRandom" but android is unable to find it. here is log-cat error:

10-06 22:25:44.324: E/dalvikvm(32150): Could not find class 'sun.security.provider.SecureRandom', referenced from method crypt.F5Random.<init>

Now I am guessing that android is not supporting the "sun.security.provider.SecureRandom" library, if it is so, the what should I do? Can I import the library manually? PS I don't want to change anything in "F5 Steganography" library code due to the fact it is being used as it is on Java platform. Here is the code for reference:

public void clk1(View v){
    EditText eto=(EditText) findViewById(R.id.editText2);
    EditText ett=(EditText) findViewById(R.id.editText3);
    Extract e=new Extract();
    String information[] = new String[5];
    information[0]="-p";
    information[1]="123";
    information[2]="-e";
    information[3]=ett.getText().toString();
    information[4]=eto.getText().toString();
    e.main(information);
}
  • Embed Issue

On Embed, I am facing an issue similar to before. Error is saying that it could not find the "james.JpegEncoder" class in the library, yet it is present there as seen in the attached image .

Here is log-cat trace:

10-06 23:00:39.678: E/dalvikvm(410): Could not find class 'james.JpegEncoder', referenced from method main.Embed.main

Here is the code for reference:

public void clk0(View v){
    EditText eto=(EditText) findViewById(R.id.editText2);
    EditText ett=(EditText) findViewById(R.id.editText3);
    EditText eti=(EditText) findViewById(R.id.editText1);
    Embed e=new Embed();
    String information[] = new String[8];
    information[0]="-e";
    information[1]=ett.getText().toString();
    information[2]="-p";
    information[3]="123";
    information[4]="-q";
    information[5]="100";
    information[6]=eti.getText().toString();
    information[7]=eto.getText().toString();
    e.main(information);
}

What should I do to counter this problem? I have reached here after solving many issues but got stuck here. I have searched through the Internet and could not find a proper solution even remotely relating to my issue.

If you would like to use in Android the tool you referred ( https://code.google.com/p/f5-steganography ), you have to import some libraries from sun or include in your project the following classes from sun.security.provider:

This post is a bit old but might help others in the futre... I just tried myself and works like charm :)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM