Wie man Daten von .db.crypt Datei zu lesen ?

? Noman Hamid @ | Original: StackOverFlow
---

Ich möchte Daten als Zeichenfolge lesen .db.crypt file Gibt es eine lib oder Verfahren, um Daten aus dieser Datei zu entschlüsseln ?

Wenn ja, dann bitte mich in Richtung oder geben Sie keine Probe.

---

Top 5 Antwort

1tianwei @

Ich denke, .db.crypt ist nur ein Zusatz von jemandem festgelegt. Zum Beispiel kann ich eine Textdatei zu machen und nennen Sie es abc.db.crypt . So können Sie alles nur durch das Wissen, das Suffix nicht.

Aber manchmal ist die Endung ist ein Hinweis auf die Art und Weise, um Ihre Lösung zu finden. Ich denke, diese Datei ist eine Datenbankdatei, die zuerst verschlüsselt wurde . Also, was Sie tun müssen, ist es, die Verfahren zu verschlüsseln (vielleicht DES oder ein Algorithmus nur durch den Autor festgelegten ) zu finden, entschlüsseln Sie die Datei in einer Datenbankdatei ( xxx.db ) und verwenden Sie dann sqlite3, um Daten daraus zu ziehen.

2Noman Hamid @

Ich habe dies mit folgenden Code tun :

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");
    }
}  

Und zeigt dann die Ergebnisse in Ihre Textview oder wo immer Sie wollen.

Cheers !! :)