Как прочитать данные из .db.crypt файл ?

? Noman Hamid @ | Original: StackOverFlow
---

Я хочу, чтобы прочитать данные в виде строки из .db.crypt file Есть ли библиотеку или метод расшифровки данных из этого файла ?

Если да, то любезно мне точку в направлении, или предоставить любую выборку.

---

Top 5 ответ

1tianwei @

Я думаю, что .db.crypt это простосуффикс определяется кого-то. Например, я могу создать текстовый файл и назовите его abc.db.crypt . Таким образом, вы ничего не можете сделать, просто зная, суффикс .

Но иногдасуффиксключ, чтобы найти путь к решению. Я предполагаю, что это файлфайл базы данных, которая была зашифрована в первую очередь. Так что вам нужно сделать, это найти способ зашифровать ( возможно DES или какой-либо алгоритм просто заданную автором ), расшифровать файл к файлу базы данных ( xxx.db ), а затем использовать sqlite3, чтобы получить данные из него.

2Noman Hamid @

Я сделал это с помощью следующего кода:

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

И затем отобразить результаты в TextView или везде, где вы хотите.

Cheers !! :)