代码之家  ›  专栏  ›  技术社区  ›  Gaju Kollur

如何使用SEE(SQLite加密扩展)对数据库进行加密?

  •  1
  • Gaju Kollur  · 技术社区  · 6 年前

      public class MyHelper extends SQLiteOpenHelper {
    
       public static String ACSL_ITS_DETAILS = "acsl_its_details";
        public static String USER_ID = "userID";
        public static String PRIMARY_KEY = "_id";
        public static String UNIT_ID = "unit_id";
        public static String DATE = "date";
        public static String DEPTID = "deptid";
        public static String COMPY_CODE = "compy_code";
        public static String DEVICE_COMPY_CODE = "device_compy_code";
    
       public static String ACSLOGITS_TABLE = "CREATE TABLE IF NOT EXISTS " + ACSL_ITS_DETAILS + "(" + PRIMARY_KEY + " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , " + USER_ID + " varchar," +
                "" + UNIT_ID + " varchar," +
                "" + DATE + " varchar," +
                "" + DEPTID + " varchar," +
                "" + COMPY_CODE + " varchar," +
                "" + DEVICE_COMPY_CODE + " varchar);";
    
        static MyHelper mInstance;
        public static SQLiteDatabase db;
    
    
        public MyHelper(Context context) {
            super(context, Environment.getExternalStorageDirectory()
                    + File.separator + "see.db", null, 1);
        }
    
        public static MyHelper getInstance(Context context) {
            int i = 0;
            while (i < 2) {
                if (mInstance == null) {
                    try {
                        mInstance = new MyHelper(context.getApplicationContext());
    //                    db = mInstance.getWritableDatabase();
                        break;
                    } catch (Exception e) {
                        e.printStackTrace();
                        try {
                            if (mInstance != null) {
                                mInstance.close();
                                mInstance = null;
                                i++;
                            }
                        } catch (Exception e1) {
                            e1.printStackTrace();
                        }
    
                    }
                }
            }
    
            return mInstance;
        }
    
    @Override
        public void onConfigure(SQLiteDatabase db) {
            super.onConfigure(db);
            db.execSQL("PRAGMA key = 'manvish'");
            Log.d("Gajanand", "onConfigure: ");
    
        }
    
        @Override
        public void onCreate(SQLiteDatabase sqLiteDatabase) {
            sqLiteDatabase.execSQL(ACSLOGITS_TABLE);
    
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
    
        }
    }
    

     public class MainActivity extends AppCompatActivity {
    
        SQLiteDatabase db;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            db = MyHelper.getInstance(this).getWritableDatabase();
    
            insertSthToDb();
    
            fetch();
    
        }
    
        private void insertSthToDb() {
    
            ContentValues values = new ContentValues();
    
            values.put(USER_ID, "1234");
            values.put(UNIT_ID, 516001280);
    
            db.insert(ACSL_ITS_DETAILS, null, values);
    
        }
    
        private void fetch() {
    
            Cursor cursor = db.rawQuery("select userID from acsl_its_details where _id = 1 ", null);
    
            if (null != cursor && cursor.moveToFirst()) {
    
                String id = cursor.getString(cursor.getColumnIndex(USER_ID));
    
                Log.d("Gajanand", "fetch: " + id);
    
            }
    
        }
    }
    

     <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              package="com.example.manvish.see">
    
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN"/>
    
                    <category android:name="android.intent.category.LAUNCHER"/>
                </intent-filter>
            </activity>
        </application>
    
    </manifest>
    

    link 我提到了这个话题。有什么帮助吗?

    0 回复  |  直到 6 年前
    推荐文章