編輯:Android開發實例
Android的APK只要解壓縮就可以得到裡面的資源文件,這顯得有些過於開放了。
很多時候我們發現一些廠家的產品都將資源文件進行了處理,即加密了。
接下來我們就對圖片文件進行簡單加密解密操作。
一、准備一張圖片,因為是在libgdx中使用,所以長寬必須是2的冪次方。
二、簡單異或加密
- String fileName = "image.jpg";//圖片名稱
- String key = "test";//密碼
- RandomAccessFile raf = null;
- try {
- raf = new RandomAccessFile(fileName, "rw");
- int value = -1;
- while ((value = raf.read()) != -1) {
- long pointer = raf.getFilePointer();
- raf.seek(pointer - 1);
- raf.write(value ^ key.hashCode());
- //每個字節異或密碼,請保證解密時密碼前後相同
- }
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- try {
- raf.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
三、加密後的圖片我們將無法再預覽。我們可以將圖片的擴展名改成dat,進一步的混淆。
四、解密並顯示
- public void Load(){
- String key = "test";
- InputStream is = null;
- int value = -1;
- byte[] bs = new byte[76583];
- int cx = 0;
- try {
- is = this.getAssets().open("image.dat");
- while ((value = is.read()) != -1) {
- bs[cx] = (byte) (value ^ key.hashCode());
- cx++;
- }
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- try {
- is.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- pixmap = new Pixmap(bs, 0, bs.length);
- }
解密與加密相同,都是每字節異或密碼。
byte[] bs = new byte[76583];
這裡我們需要自定義內存大小,查看文件的屬性,查看大小。
五、查看源碼 DwinterGdxDemo01
導入後請注意更改引用包
二、創建樣式 日歷顯示的表格線,使用 Cell 填充圖形的邊框來實現,為了統一,我們先定義邊框線的顏色及線條精細。 另外還要定義一系統填充樣式等。 創建 colo
android實現底部布局往往使用RelativeLayout的布局方式,並且設置android:layout_alignParentBottom=”true”,
shimmer開源庫介紹 Shimmer是Fa
登錄應用程序的屏幕,詢問憑據登錄到一些特定的應用。可能需要登錄到Facebook,微博等本章介紹了,如何創建一個登錄界面,以及如何管理安全問題和錯誤嘗試。首先,必須定義兩