Como ler dados de arquivo .db.crypt ?

? Noman Hamid @ | Original: StackOverFlow
---

Eu quero ler dados como seqüência de .db.crypt file Existe alguma lib ou método para descriptografar os dados deste arquivo ?

Se sim, então me aponte gentilmente na direção ou fornecer amostras .

---

Top 5 Responder

1tianwei @

Eu acho que .db.crypt é apenas um sufixo definido por alguém. Por exemplo, eu posso fazer um arquivo de texto com o nome abc.db.crypt . Então, você não pode fazer nada apenas por saber o sufixo .

Mas às vezes o sufixo é uma pista para encontrar o caminho para a sua solução. Eu acho que este é um arquivo de banco de dados que foi criptografado em primeiro lugar. Então, o que você precisa fazer é encontrar o método de criptografar (talvez DES ou algum algoritmo apenas definido pelo autor ), descriptografar o arquivo em um arquivo de banco de dados ( xxx.db ) e, em seguida, usar sqlite3 para obter dados a partir dele .

2Noman Hamid @

Eu fiz isso usando o seguinte código:

public void copyDbToSdcard()
{
    try
    {
        String comando = "cp -r /data/data/com.whatsapp/databases/msgstore.db /sdcard/My_Custom_Folder/";
        Process suProcess = Runtime.getRuntime().exec("su");
        DataOutputStream os = new DataOutputStream(suProcess.getOutputStream());
        os.writeBytes(comando + "
");
        os.flush();
        os.writeBytes("exit
");
        os.flush();
        try
        {
            int suProcessRetval = suProcess.waitFor();
            if(255 != suProcessRetval)
            {
                //
            }
            else
            {
                //
            }
        }
        catch (Exception ex)
        {
            Log.e("ERROR-->", ex.toString());
        }
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
}  


    private void openAndQueryDatabase()
{
    try
    {
        DataBaseHelper dbHelper = new DataBaseHelper(this.getApplicationContext());
        newDB = dbHelper.getWritableDatabase();

        Cursor c = newDB.rawQuery("SELECT data FROM messages where data!=''", null);

        if(c != null)
        {
            if(c.moveToFirst())
            {
                do
                {

                    String data = c.getString(c.getColumnIndex("data"));

                    results.add(data); //adding to arrayList

                }
                while (c.moveToNext());
            }
        }

                while (c3.moveToNext());
            }
        }
    }

    catch (SQLiteException se)
    {
        Log.e(getClass().getSimpleName(), "Could not create or Open the database");
    }
}  

E, em seguida, apresentar os resultados em seu TextView ou onde quer que você quer.

Cheers !! :)