chào các bạn, đây là một thủ thuật khá hay mà long đã tìm hiểu đc trong thời gian qua. để làm được ứng dụng này long đã phải xử lý rất nhiều bug lỗi khó và sau đây là kết quả đạt được nên chia sẽ cho các bạn ^^! đây là thủ thuật nâng cao từ bài hướng dẫn mã hóa và giải mã cơ bản tại đây.
[img]data/attachments/13/13873-4fb9a3277f378924f1ac76d8f8376952.jpg[/img]
1) source code demo:
click vào đây để download source code demo.
2) mô tả thủ thuật:
- dữ liệu là một thông tin tuyệt mật không thể để cho người dùng biết.
- mã hóa dữ liệu này với một khóa mà chỉ mình biết.
- lưu trữ dữ liệu đã được mã hóa này vào database.
- khi muốn sử dụng dữ liệu, lấy dữ liệu đã mã hóa ra từ database
- thực hiện giải mã với khóa lúc mã hóa
- và làm gì đó với dữ liệu
3) lợi ích của thủ thuật này:
- khi ứng dụng bản bạn bị bẻ khóa, nhất là trên android, các hacker sẽ dễ dàng có được database của bạn. tuy nhiên đọc được dữ liệu đã mã hóa là một vấn đề. nó sẽ làm cho bác hacker nãn và bỏ cuộc
.
- dữ liệu được mã hóa lưu vào data dưới dạng mảng byte nhị phân nên dữ liệu rất an toàn
- việc giải mã là hoàn toàn ok nếu như bạn nhập đúng khóa lúc mã hóa, còn nếu sai thì cũng chả ra cái gì cả ^^!
4) hỉnh ảnh demo của thủ thuật này:
[img]data/attachments/13/13871-2d3e53309d96ea79a9b5f08a54bfcf8a.jpg[/img]
[img]data/attachments/13/13872-4cc5c033909f511755d94826987b0bba.jpg[/img]
5) hướng dẫn code:
- res/values/strings.xml
Mã nguồn PHP:
[color=#000000]
[/color][color=#007700]<?[/color][color=#0000bb]xml version[/color][color=#007700]=[/color][color=#dd0000]"1.0" [/color][color=#0000bb]encoding[/color][color=#007700]=[/color][color=#dd0000]"utf-8"[/color][color=#0000bb]?>[/color]<resources> <string name="app_name">demoandroid</string> <string name="parsed_data">http://android.vn
hướng dẫn bởi thanhlong90.it</string> <string name="action_settings">settings</string> <string name="hello_world">hello world!</string> <string name="dulieu">dữ liệu cần mã hóa:</string> <string name="hint">mời nhập dữ liệu</string> <string name="khoa">mời nhập khóa: (khóa này dùng để giải mã)</string> <string name="hint2">vui lòng nhập khóa mã hóa</string> <string name="xemketqua">xem kết quả mã hóa dữ liệu</string> <string name="xemtranggiaima">qua trang giải mã</string> <string name="title_activity_activity2">activity2</string> <string name="dulieumahoa">dữ liệu cần giải mã là:</string> <string name="dulieukhoa">khóa để giải mã là:</string> <string name="xemketquagiaima">xem kết quả giải mã dữ liệu</string> <string name="xemtrangmahoa">qua trang mã hóa</string> </resources>
- androidmanifest.xml
Mã nguồn PHP:
[color=#000000]
[/color][color=#007700]<?[/color][color=#0000bb]xml version[/color][color=#007700]=[/color][color=#dd0000]"1.0" [/color][color=#0000bb]encoding[/color][color=#007700]=[/color][color=#dd0000]"utf-8"[/color][color=#0000bb]?>[/color]<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="android.vn" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="8" android:targetsdkversion="8" /> <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:name="android.vn.mainactivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <activity android:name="android.vn.activity2" android:label="@string/title_activity_activity2" > </activity> </application> </manifest>
- activity_main.xml
Mã nguồn PHP:
[color=#000000]
[/color][color=#007700]<[/color][color=#0000bb]linearlayout xmlns[/color][color=#007700]:[/color][color=#0000bb]android[/color][color=#007700]=[/color][color=#dd0000]"http://schemas.android.com/apk/res/android" [/color][color=#0000bb]xmlns[/color][color=#007700]:[/color][color=#0000bb]tools[/color][color=#007700]=[/color][color=#dd0000]"http://schemas.android.com/tools" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"match_parent" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"match_parent" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]orientation[/color][color=#007700]=[/color][color=#dd0000]"vertical" [/color][color=#007700]> <[/color][color=#0000bb]textview android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"match_parent" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_margintop[/color][color=#007700]=[/color][color=#dd0000]"14dp" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]gravity[/color][color=#007700]=[/color][color=#dd0000]"center" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]text[/color][color=#007700]=[/color][color=#dd0000]"@string/parsed_data" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]textappearance[/color][color=#007700]=[/color][color=#dd0000]"?android:attr/textappearancemedium" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]textstyle[/color][color=#007700]=[/color][color=#dd0000]"bold" [/color][color=#007700]/> <[/color][color=#0000bb]textview android[/color][color=#007700]:[/color][color=#0000bb]id[/color][color=#007700]=[/color][color=#dd0000]"@+id/textview1" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_margintop[/color][color=#007700]=[/color][color=#dd0000]"20dp" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]text[/color][color=#007700]=[/color][color=#dd0000]"@string/dulieu" [/color][color=#007700]/> <[/color][color=#0000bb]edittext android[/color][color=#007700]:[/color][color=#0000bb]id[/color][color=#007700]=[/color][color=#dd0000]"@+id/edittext1" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"match_parent" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]hint[/color][color=#007700]=[/color][color=#dd0000]"@string/hint" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]ems[/color][color=#007700]=[/color][color=#dd0000]"10" [/color][color=#007700]> </[/color][color=#0000bb]edittext[/color][color=#007700]> <[/color][color=#0000bb]textview android[/color][color=#007700]:[/color][color=#0000bb]id[/color][color=#007700]=[/color][color=#dd0000]"@+id/textview2" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_margintop[/color][color=#007700]=[/color][color=#dd0000]"20dp" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]text[/color][color=#007700]=[/color][color=#dd0000]"@string/khoa" [/color][color=#007700]/> <[/color][color=#0000bb]edittext android[/color][color=#007700]:[/color][color=#0000bb]id[/color][color=#007700]=[/color][color=#dd0000]"@+id/edittext2" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"match_parent" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]hint[/color][color=#007700]=[/color][color=#dd0000]"@string/hint2" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]ems[/color][color=#007700]=[/color][color=#dd0000]"10" [/color][color=#007700]> </[/color][color=#0000bb]edittext[/color][color=#007700]> <[/color][color=#0000bb]button android[/color][color=#007700]:[/color][color=#0000bb]id[/color][color=#007700]=[/color][color=#dd0000]"@+id/button1" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"fill_parent" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]text[/color][color=#007700]=[/color][color=#dd0000]"@string/xemketqua" [/color][color=#007700]/> <[/color][color=#0000bb]textview android[/color][color=#007700]:[/color][color=#0000bb]id[/color][color=#007700]=[/color][color=#dd0000]"@+id/textview3" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_margintop[/color][color=#007700]=[/color][color=#dd0000]"20dp" [/color][color=#007700]/> <[/color][color=#0000bb]button android[/color][color=#007700]:[/color][color=#0000bb]id[/color][color=#007700]=[/color][color=#dd0000]"@+id/button2" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"fill_parent" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]visibility[/color][color=#007700]=[/color][color=#dd0000]"invisible" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]text[/color][color=#007700]=[/color][color=#dd0000]"@string/xemtranggiaima" [/color][color=#007700]/> <[/color][color=#0000bb]textview android[/color][color=#007700]:[/color][color=#0000bb]id[/color][color=#007700]=[/color][color=#dd0000]"@+id/textview4" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_margintop[/color][color=#007700]=[/color][color=#dd0000]"20dp" [/color][color=#007700]/> </[/color][color=#0000bb]linearlayout[/color][color=#007700]>[/color]
- activity_2.xml
Mã nguồn PHP:
[color=#000000]
[/color][color=#007700]<[/color][color=#0000bb]linearlayout xmlns[/color][color=#007700]:[/color][color=#0000bb]android[/color][color=#007700]=[/color][color=#dd0000]"http://schemas.android.com/apk/res/android" [/color][color=#0000bb]xmlns[/color][color=#007700]:[/color][color=#0000bb]tools[/color][color=#007700]=[/color][color=#dd0000]"http://schemas.android.com/tools" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"match_parent" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"match_parent" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]orientation[/color][color=#007700]=[/color][color=#dd0000]"vertical" [/color][color=#007700]> <[/color][color=#0000bb]textview android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"match_parent" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_margintop[/color][color=#007700]=[/color][color=#dd0000]"14dp" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]gravity[/color][color=#007700]=[/color][color=#dd0000]"center" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]text[/color][color=#007700]=[/color][color=#dd0000]"@string/parsed_data" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]textappearance[/color][color=#007700]=[/color][color=#dd0000]"?android:attr/textappearancemedium" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]textstyle[/color][color=#007700]=[/color][color=#dd0000]"bold" [/color][color=#007700]/> <[/color][color=#0000bb]textview android[/color][color=#007700]:[/color][color=#0000bb]id[/color][color=#007700]=[/color][color=#dd0000]"@+id/textview1" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_margintop[/color][color=#007700]=[/color][color=#dd0000]"20dp" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]text[/color][color=#007700]=[/color][color=#dd0000]"@string/dulieumahoa" [/color][color=#007700]/> <[/color][color=#0000bb]textview android[/color][color=#007700]:[/color][color=#0000bb]id[/color][color=#007700]=[/color][color=#dd0000]"@+id/textview2" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_margintop[/color][color=#007700]=[/color][color=#dd0000]"20dp"[/color][color=#007700]/> <[/color][color=#0000bb]textview android[/color][color=#007700]:[/color][color=#0000bb]id[/color][color=#007700]=[/color][color=#dd0000]"@+id/textview3" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_margintop[/color][color=#007700]=[/color][color=#dd0000]"20dp" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]text[/color][color=#007700]=[/color][color=#dd0000]"@string/dulieukhoa" [/color][color=#007700]/> <[/color][color=#0000bb]textview android[/color][color=#007700]:[/color][color=#0000bb]id[/color][color=#007700]=[/color][color=#dd0000]"@+id/textview4" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_margintop[/color][color=#007700]=[/color][color=#dd0000]"20dp"[/color][color=#007700]/> <[/color][color=#0000bb]button android[/color][color=#007700]:[/color][color=#0000bb]id[/color][color=#007700]=[/color][color=#dd0000]"@+id/button1" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"fill_parent" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]text[/color][color=#007700]=[/color][color=#dd0000]"@string/xemketquagiaima" [/color][color=#007700]/> <[/color][color=#0000bb]textview android[/color][color=#007700]:[/color][color=#0000bb]id[/color][color=#007700]=[/color][color=#dd0000]"@+id/textview5" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_margintop[/color][color=#007700]=[/color][color=#dd0000]"20dp"[/color][color=#007700]/> <[/color][color=#0000bb]button android[/color][color=#007700]:[/color][color=#0000bb]id[/color][color=#007700]=[/color][color=#dd0000]"@+id/button2" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"fill_parent" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_margintop[/color][color=#007700]=[/color][color=#dd0000]"20dp" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]visibility[/color][color=#007700]=[/color][color=#dd0000]"invisible" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]text[/color][color=#007700]=[/color][color=#dd0000]"@string/xemtrangmahoa" [/color][color=#007700]/> </[/color][color=#0000bb]linearlayout[/color][color=#007700]>[/color]
- mydatabase.java
Mã nguồn PHP:
[color=#000000]
package android[/color][color=#007700].[/color][color=#0000bb]vn[/color][color=#007700]; [/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]content[/color][color=#007700].[/color][color=#0000bb]contentvalues[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]content[/color][color=#007700].[/color][color=#0000bb]context[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]database[/color][color=#007700].[/color][color=#0000bb]cursor[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]database[/color][color=#007700].[/color][color=#0000bb]sqlexception[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]database[/color][color=#007700].[/color][color=#0000bb]sqlite[/color][color=#007700].[/color][color=#0000bb]sqlitedatabase[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]database[/color][color=#007700].[/color][color=#0000bb]sqlite[/color][color=#007700].[/color][color=#0000bb]sqliteopenhelper[/color][color=#007700]; public class [/color][color=#0000bb]mydatabase [/color][color=#007700]{ private static final [/color][color=#0000bb]string database_name [/color][color=#007700]= [/color][color=#dd0000]"db_user"[/color][color=#007700]; private static final [/color][color=#0000bb]int database_version [/color][color=#007700]= [/color][color=#0000bb]1[/color][color=#007700]; private static final [/color][color=#0000bb]string table_account [/color][color=#007700]= [/color][color=#dd0000]"account"[/color][color=#007700]; public static final [/color][color=#0000bb]string column_id [/color][color=#007700]= [/color][color=#dd0000]"_id"[/color][color=#007700]; public static final [/color][color=#0000bb]string column_acc [/color][color=#007700]= [/color][color=#dd0000]"tentaikhoan"[/color][color=#007700]; public static final [/color][color=#0000bb]string column_data [/color][color=#007700]= [/color][color=#dd0000]"data"[/color][color=#007700]; private static [/color][color=#0000bb]context context[/color][color=#007700]; static [/color][color=#0000bb]sqlitedatabase db[/color][color=#007700]; private [/color][color=#0000bb]openhelper openhelper[/color][color=#007700]; public [/color][color=#0000bb]mydatabase[/color][color=#007700]([/color][color=#0000bb]context c[/color][color=#007700]){ [/color][color=#0000bb]mydatabase[/color][color=#007700].[/color][color=#0000bb]context [/color][color=#007700]= [/color][color=#0000bb]c[/color][color=#007700]; } [/color][color=#ff8000]//cho phép kết nối database [/color][color=#007700]public [/color][color=#0000bb]mydatabase open[/color][color=#007700]() [/color][color=#0000bb]throws sqlexception[/color][color=#007700]{ [/color][color=#0000bb]openhelper [/color][color=#007700]= new [/color][color=#0000bb]openhelper[/color][color=#007700]([/color][color=#0000bb]context[/color][color=#007700]); [/color][color=#0000bb]db [/color][color=#007700]= [/color][color=#0000bb]openhelper[/color][color=#007700].[/color][color=#0000bb]getwritabledatabase[/color][color=#007700](); return [/color][color=#0000bb]this[/color][color=#007700]; } [/color][color=#ff8000]//đóng kết nối với database [/color][color=#007700]public [/color][color=#0000bb]void close[/color][color=#007700](){ [/color][color=#0000bb]openhelper[/color][color=#007700].[/color][color=#0000bb]close[/color][color=#007700](); } [/color][color=#ff8000]//khởi tạo dữ liệu trong database [/color][color=#007700]public [/color][color=#0000bb]long createdata[/color][color=#007700]([/color][color=#0000bb]string tendn[/color][color=#007700], [/color][color=#0000bb]byte[/color][color=#007700][] [/color][color=#0000bb]data[/color][color=#007700]) { [/color][color=#0000bb]contentvalues cv [/color][color=#007700]= new [/color][color=#0000bb]contentvalues[/color][color=#007700](); [/color][color=#0000bb]cv[/color][color=#007700].[/color][color=#0000bb]put[/color][color=#007700]([/color][color=#0000bb]column_acc[/color][color=#007700], [/color][color=#0000bb]tendn[/color][color=#007700]); [/color][color=#0000bb]cv[/color][color=#007700].[/color][color=#0000bb]put[/color][color=#007700]([/color][color=#0000bb]column_data[/color][color=#007700], [/color][color=#0000bb]data[/color][color=#007700]); return [/color][color=#0000bb]db[/color][color=#007700].[/color][color=#0000bb]insert[/color][color=#007700]([/color][color=#0000bb]table_account[/color][color=#007700], [/color][color=#0000bb]null[/color][color=#007700], [/color][color=#0000bb]cv[/color][color=#007700]); } public [/color][color=#0000bb]int deleteacc[/color][color=#007700]([/color][color=#0000bb]string acc[/color][color=#007700]) { return [/color][color=#0000bb]db[/color][color=#007700].[/color][color=#0000bb]delete[/color][color=#007700]([/color][color=#0000bb]table_account[/color][color=#007700], [/color][color=#0000bb]column_acc [/color][color=#007700]+ [/color][color=#dd0000]"='" [/color][color=#007700]+ [/color][color=#0000bb]acc [/color][color=#007700]+ [/color][color=#dd0000]"'"[/color][color=#007700], [/color][color=#0000bb]null[/color][color=#007700]); } public [/color][color=#0000bb]int deleteaccountall[/color][color=#007700]() { return [/color][color=#0000bb]db[/color][color=#007700].[/color][color=#0000bb]delete[/color][color=#007700]([/color][color=#0000bb]table_account[/color][color=#007700], [/color][color=#0000bb]null[/color][color=#007700], [/color][color=#0000bb]null[/color][color=#007700]); } public [/color][color=#0000bb]boolean updatedata[/color][color=#007700]([/color][color=#0000bb]string acc[/color][color=#007700], [/color][color=#0000bb]string data[/color][color=#007700]){ [/color][color=#0000bb]contentvalues cv [/color][color=#007700]= new [/color][color=#0000bb]contentvalues[/color][color=#007700](); [/color][color=#0000bb]cv[/color][color=#007700].[/color][color=#0000bb]put[/color][color=#007700]([/color][color=#0000bb]column_data[/color][color=#007700],[/color][color=#0000bb]data[/color][color=#007700]); [/color][color=#0000bb]long kq [/color][color=#007700]= [/color][color=#0000bb]db[/color][color=#007700].[/color][color=#0000bb]update[/color][color=#007700]([/color][color=#0000bb]table_account[/color][color=#007700],[/color][color=#0000bb]cv[/color][color=#007700],[/color][color=#0000bb]column_acc[/color][color=#007700]+[/color][color=#dd0000]"='"[/color][color=#007700]+[/color][color=#0000bb]acc[/color][color=#007700]+[/color][color=#dd0000]"'"[/color][color=#007700], [/color][color=#0000bb]null[/color][color=#007700]); if ([/color][color=#0000bb]kq[/color][color=#007700]==[/color][color=#0000bb]0[/color][color=#007700]) return [/color][color=#0000bb]false[/color][color=#007700]; else return [/color][color=#0000bb]true[/color][color=#007700]; } [/color][color=#ff8000]//lấy dữ liệu mã hóa [/color][color=#007700]public [/color][color=#0000bb]byte[/color][color=#007700][] [/color][color=#0000bb]getdata[/color][color=#007700]([/color][color=#0000bb]string acc[/color][color=#007700]) { [/color][color=#0000bb]cursor c [/color][color=#007700]= [/color][color=#0000bb]db[/color][color=#007700].[/color][color=#0000bb]rawquery[/color][color=#007700]([/color][color=#dd0000]"select * from "[/color][color=#007700]+[/color][color=#0000bb]table_account[/color][color=#007700]+[/color][color=#dd0000]" where "[/color][color=#007700]+[/color][color=#0000bb]column_acc[/color][color=#007700]+[/color][color=#dd0000]" = ?"[/color][color=#007700], new [/color][color=#0000bb]string[/color][color=#007700][] { [/color][color=#0000bb]acc [/color][color=#007700]}); [/color][color=#0000bb]byte[/color][color=#007700][] [/color][color=#0000bb]data [/color][color=#007700]= [/color][color=#0000bb]null[/color][color=#007700]; if([/color][color=#0000bb]c[/color][color=#007700].[/color][color=#0000bb]getcount[/color][color=#007700]()==[/color][color=#0000bb]1[/color][color=#007700]){ [/color][color=#0000bb]int i [/color][color=#007700]= [/color][color=#0000bb]c[/color][color=#007700].[/color][color=#0000bb]getcolumnindex[/color][color=#007700]([/color][color=#0000bb]column_data[/color][color=#007700]); [/color][color=#0000bb]c[/color][color=#007700].[/color][color=#0000bb]movetofirst[/color][color=#007700](); [/color][color=#0000bb]data[/color][color=#007700]=[/color][color=#0000bb]c[/color][color=#007700].[/color][color=#0000bb]getblob[/color][color=#007700]([/color][color=#0000bb]i[/color][color=#007700]); } [/color][color=#0000bb]c[/color][color=#007700].[/color][color=#0000bb]close[/color][color=#007700](); return [/color][color=#0000bb]data[/color][color=#007700]; } [/color][color=#ff8000]//---------------- class openhelper ------------------ [/color][color=#007700]private static class [/color][color=#0000bb]openhelper [/color][color=#007700]extends [/color][color=#0000bb]sqliteopenhelper [/color][color=#007700]{ public [/color][color=#0000bb]openhelper[/color][color=#007700]([/color][color=#0000bb]context context[/color][color=#007700]) { [/color][color=#0000bb]super[/color][color=#007700]([/color][color=#0000bb]context[/color][color=#007700], [/color][color=#0000bb]database_name[/color][color=#007700], [/color][color=#0000bb]null[/color][color=#007700], [/color][color=#0000bb]database_version[/color][color=#007700]); } [/color][color=#ff8000]//tạo database [/color][color=#007700]@[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]void oncreate[/color][color=#007700]([/color][color=#0000bb]sqlitedatabase arg0[/color][color=#007700]) { [/color][color=#0000bb]arg0[/color][color=#007700].[/color][color=#0000bb]execsql[/color][color=#007700]([/color][color=#dd0000]"create table " [/color][color=#007700]+ [/color][color=#0000bb]table_account [/color][color=#007700]+ [/color][color=#dd0000]" (" [/color][color=#007700]+ [/color][color=#0000bb]column_id [/color][color=#007700]+ [/color][color=#dd0000]" integer primary key autoincrement, " [/color][color=#007700]+ [/color][color=#0000bb]column_acc [/color][color=#007700]+ [/color][color=#dd0000]" text not null, " [/color][color=#007700]+ [/color][color=#0000bb]column_data [/color][color=#007700]+ [/color][color=#dd0000]" blob not null);"[/color][color=#007700]); } [/color][color=#ff8000]//cập nhật database [/color][color=#007700]@[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]void onupgrade[/color][color=#007700]([/color][color=#0000bb]sqlitedatabase arg0[/color][color=#007700], [/color][color=#0000bb]int arg1[/color][color=#007700], [/color][color=#0000bb]int arg2[/color][color=#007700]) { [/color][color=#0000bb]arg0[/color][color=#007700].[/color][color=#0000bb]execsql[/color][color=#007700]([/color][color=#dd0000]"drop table if exists " [/color][color=#007700]+ [/color][color=#0000bb]table_account[/color][color=#007700]); [/color][color=#0000bb]oncreate[/color][color=#007700]([/color][color=#0000bb]arg0[/color][color=#007700]); } }}[/color]
- mycipher.java
Mã nguồn PHP:
[color=#000000]
package android[/color][color=#007700].[/color][color=#0000bb]vn[/color][color=#007700]; [/color][color=#0000bb]import java[/color][color=#007700].[/color][color=#0000bb]security[/color][color=#007700].[/color][color=#0000bb]securerandom[/color][color=#007700]; [/color][color=#0000bb]import javax[/color][color=#007700].[/color][color=#0000bb]crypto[/color][color=#007700].[/color][color=#0000bb]cipher[/color][color=#007700];[/color][color=#0000bb]import javax[/color][color=#007700].[/color][color=#0000bb]crypto[/color][color=#007700].[/color][color=#0000bb]keygenerator[/color][color=#007700];[/color][color=#0000bb]import javax[/color][color=#007700].[/color][color=#0000bb]crypto[/color][color=#007700].[/color][color=#0000bb]secretkey[/color][color=#007700];[/color][color=#0000bb]import javax[/color][color=#007700].[/color][color=#0000bb]crypto[/color][color=#007700].[/color][color=#0000bb]spec[/color][color=#007700].[/color][color=#0000bb]secretkeyspec[/color][color=#007700];public class [/color][color=#0000bb]mycipher [/color][color=#007700]{ [/color][color=#ff8000]//hàm chuyển đổi key là 1 chuỗi ký tự về 1 mảng byte làm làm chìa khóa mã hóa [/color][color=#007700]public static [/color][color=#0000bb]byte[/color][color=#007700][] [/color][color=#0000bb]generatekey[/color][color=#007700]([/color][color=#0000bb]string password[/color][color=#007700]) [/color][color=#0000bb]throws exception [/color][color=#007700]{ [/color][color=#0000bb]byte[/color][color=#007700][] [/color][color=#0000bb]keystart [/color][color=#007700]= [/color][color=#0000bb]password[/color][color=#007700].[/color][color=#0000bb]getbytes[/color][color=#007700](); [/color][color=#0000bb]keygenerator kgen [/color][color=#007700]= [/color][color=#0000bb]keygenerator[/color][color=#007700].[/color][color=#0000bb]getinstance[/color][color=#007700]([/color][color=#dd0000]"aes"[/color][color=#007700]); [/color][color=#0000bb]securerandom sr [/color][color=#007700]= [/color][color=#0000bb]securerandom[/color][color=#007700].[/color][color=#0000bb]getinstance[/color][color=#007700]([/color][color=#dd0000]"sha1prng"[/color][color=#007700]); [/color][color=#0000bb]sr[/color][color=#007700].[/color][color=#0000bb]setseed[/color][color=#007700]([/color][color=#0000bb]keystart[/color][color=#007700]); [/color][color=#0000bb]kgen[/color][color=#007700].[/color][color=#0000bb]init[/color][color=#007700]([/color][color=#0000bb]128[/color][color=#007700], [/color][color=#0000bb]sr[/color][color=#007700]); [/color][color=#0000bb]secretkey skey [/color][color=#007700]= [/color][color=#0000bb]kgen[/color][color=#007700].[/color][color=#0000bb]generatekey[/color][color=#007700](); return [/color][color=#0000bb]skey[/color][color=#007700].[/color][color=#0000bb]getencoded[/color][color=#007700](); } [/color][color=#ff8000]//hàm thực hiện việc mã hóa dữ liệu từ 1 key [/color][color=#007700]public static [/color][color=#0000bb]byte[/color][color=#007700][] [/color][color=#0000bb]encodefile[/color][color=#007700]([/color][color=#0000bb]byte[/color][color=#007700][] [/color][color=#0000bb]key[/color][color=#007700], [/color][color=#0000bb]byte[/color][color=#007700][] [/color][color=#0000bb]filedata[/color][color=#007700]) [/color][color=#0000bb]throws exception [/color][color=#007700]{ [/color][color=#0000bb]secretkeyspec skeyspec [/color][color=#007700]= new [/color][color=#0000bb]secretkeyspec[/color][color=#007700]([/color][color=#0000bb]key[/color][color=#007700], [/color][color=#dd0000]"aes"[/color][color=#007700]); [/color][color=#0000bb]cipher cipher [/color][color=#007700]= [/color][color=#0000bb]cipher[/color][color=#007700].[/color][color=#0000bb]getinstance[/color][color=#007700]([/color][color=#dd0000]"aes"[/color][color=#007700]); [/color][color=#0000bb]cipher[/color][color=#007700].[/color][color=#0000bb]init[/color][color=#007700]([/color][color=#0000bb]cipher[/color][color=#007700].[/color][color=#0000bb]encrypt_mode[/color][color=#007700], [/color][color=#0000bb]skeyspec[/color][color=#007700]); [/color][color=#0000bb]byte[/color][color=#007700][] [/color][color=#0000bb]encrypted [/color][color=#007700]= [/color][color=#0000bb]cipher[/color][color=#007700].[/color][color=#0000bb]dofinal[/color][color=#007700]([/color][color=#0000bb]filedata[/color][color=#007700]); return [/color][color=#0000bb]encrypted[/color][color=#007700]; } [/color][color=#ff8000]//hàm thực hiện việc giải mã dữ liệu từ 1 key [/color][color=#007700]public static [/color][color=#0000bb]byte[/color][color=#007700][] [/color][color=#0000bb]decodefile[/color][color=#007700]([/color][color=#0000bb]byte[/color][color=#007700][] [/color][color=#0000bb]key[/color][color=#007700], [/color][color=#0000bb]byte[/color][color=#007700][] [/color][color=#0000bb]filedata[/color][color=#007700]) [/color][color=#0000bb]throws exception [/color][color=#007700]{ [/color][color=#0000bb]secretkeyspec skeyspec [/color][color=#007700]= new [/color][color=#0000bb]secretkeyspec[/color][color=#007700]([/color][color=#0000bb]key[/color][color=#007700], [/color][color=#dd0000]"aes"[/color][color=#007700]); [/color][color=#0000bb]cipher cipher [/color][color=#007700]= [/color][color=#0000bb]cipher[/color][color=#007700].[/color][color=#0000bb]getinstance[/color][color=#007700]([/color][color=#dd0000]"aes"[/color][color=#007700]); [/color][color=#0000bb]cipher[/color][color=#007700].[/color][color=#0000bb]init[/color][color=#007700]([/color][color=#0000bb]cipher[/color][color=#007700].[/color][color=#0000bb]decrypt_mode[/color][color=#007700], [/color][color=#0000bb]skeyspec[/color][color=#007700]); [/color][color=#0000bb]byte[/color][color=#007700][] [/color][color=#0000bb]decrypted [/color][color=#007700]= [/color][color=#0000bb]cipher[/color][color=#007700].[/color][color=#0000bb]dofinal[/color][color=#007700]([/color][color=#0000bb]filedata[/color][color=#007700]); return [/color][color=#0000bb]decrypted[/color][color=#007700]; } }[/color]
- mainactivity.java
Mã nguồn PHP:
[color=#000000]
package android[/color][color=#007700].[/color][color=#0000bb]vn[/color][color=#007700]; [/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]app[/color][color=#007700].[/color][color=#0000bb]activity[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]content[/color][color=#007700].[/color][color=#0000bb]intent[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]os[/color][color=#007700].[/color][color=#0000bb]bundle[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]util[/color][color=#007700].[/color][color=#0000bb]log[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]view[/color][color=#007700].[/color][color=#0000bb]view[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]view[/color][color=#007700].[/color][color=#0000bb]view[/color][color=#007700].[/color][color=#0000bb]onclicklistener[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]button[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]edittext[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]textview[/color][color=#007700]; public class [/color][color=#0000bb]mainactivity [/color][color=#007700]extends [/color][color=#0000bb]activity [/color][color=#007700]{ private [/color][color=#0000bb]edittext data[/color][color=#007700], [/color][color=#0000bb]key[/color][color=#007700]; private [/color][color=#0000bb]textview hienthiketqua[/color][color=#007700]; private [/color][color=#0000bb]button xemketqua[/color][color=#007700], [/color][color=#0000bb]chuyentrang[/color][color=#007700]; private [/color][color=#0000bb]byte[/color][color=#007700][] [/color][color=#0000bb]filesbytes[/color][color=#007700]; private [/color][color=#0000bb]mydatabase database [/color][color=#007700]= new [/color][color=#0000bb]mydatabase[/color][color=#007700]([/color][color=#0000bb]this[/color][color=#007700]); private [/color][color=#0000bb]int flat [/color][color=#007700]= [/color][color=#0000bb]1[/color][color=#007700]; @[/color][color=#0000bb]override [/color][color=#007700]protected [/color][color=#0000bb]void oncreate[/color][color=#007700]([/color][color=#0000bb]bundle savedinstancestate[/color][color=#007700]) { [/color][color=#0000bb]super[/color][color=#007700].[/color][color=#0000bb]oncreate[/color][color=#007700]([/color][color=#0000bb]savedinstancestate[/color][color=#007700]); [/color][color=#0000bb]setcontentview[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]layout[/color][color=#007700].[/color][color=#0000bb]activity_main[/color][color=#007700]); [/color][color=#ff8000]//lấy đối tượng xml sử dụng trong code [/color][color=#0000bb]data [/color][color=#007700]= ([/color][color=#0000bb]edittext[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]edittext1[/color][color=#007700]); [/color][color=#0000bb]key [/color][color=#007700]= ([/color][color=#0000bb]edittext[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]edittext2[/color][color=#007700]); [/color][color=#0000bb]xemketqua [/color][color=#007700]= ([/color][color=#0000bb]button[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]button1[/color][color=#007700]); [/color][color=#0000bb]hienthiketqua [/color][color=#007700]= ([/color][color=#0000bb]textview[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]textview3[/color][color=#007700]); [/color][color=#0000bb]chuyentrang [/color][color=#007700]= ([/color][color=#0000bb]button[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]button2[/color][color=#007700]); [/color][color=#0000bb]xemketqua[/color][color=#007700].[/color][color=#0000bb]setonclicklistener[/color][color=#007700](new [/color][color=#0000bb]onclicklistener[/color][color=#007700]() { @[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]void onclick[/color][color=#007700]([/color][color=#0000bb]view v[/color][color=#007700]) { [/color][color=#0000bb]chuyentrang[/color][color=#007700].[/color][color=#0000bb]setvisibility[/color][color=#007700]([/color][color=#0000bb]view[/color][color=#007700].[/color][color=#0000bb]visible[/color][color=#007700]); [/color][color=#0000bb]string ketquamahoa [/color][color=#007700]= [/color][color=#0000bb]data[/color][color=#007700].[/color][color=#0000bb]gettext[/color][color=#007700]().[/color][color=#0000bb]tostring[/color][color=#007700](); [/color][color=#0000bb]string khoamahoa [/color][color=#007700]= [/color][color=#0000bb]key[/color][color=#007700].[/color][color=#0000bb]gettext[/color][color=#007700]().[/color][color=#0000bb]tostring[/color][color=#007700](); try { [/color][color=#ff8000]//thực hiện mã hóa dữ liệu [/color][color=#0000bb]filesbytes [/color][color=#007700]= [/color][color=#0000bb]mycipher[/color][color=#007700].[/color][color=#0000bb]encodefile[/color][color=#007700]([/color][color=#0000bb]mycipher[/color][color=#007700].[/color][color=#0000bb]generatekey[/color][color=#007700]([/color][color=#0000bb]khoamahoa[/color][color=#007700]), [/color][color=#0000bb]ketquamahoa[/color][color=#007700].[/color][color=#0000bb]getbytes[/color][color=#007700]([/color][color=#dd0000]"utf-8"[/color][color=#007700])); [/color][color=#ff8000]//mở kết nối dữ liệu [/color][color=#0000bb]database[/color][color=#007700].[/color][color=#0000bb]open[/color][color=#007700](); [/color][color=#ff8000]//đặt cờ tạm thời cho dữ liệu khởi tạo 1 lần thôi [/color][color=#007700]if([/color][color=#0000bb]flat[/color][color=#007700]==[/color][color=#0000bb]1[/color][color=#007700]){ [/color][color=#ff8000]//lưu dữ liệu mã hóa vào database - filesbytes [/color][color=#0000bb]database[/color][color=#007700].[/color][color=#0000bb]createdata[/color][color=#007700]([/color][color=#dd0000]"tendulieu"[/color][color=#007700], [/color][color=#0000bb]filesbytes[/color][color=#007700]); [/color][color=#0000bb]flat [/color][color=#007700]= [/color][color=#0000bb]2[/color][color=#007700]; } [/color][color=#ff8000]//đóng kết nối tới database [/color][color=#0000bb]database[/color][color=#007700].[/color][color=#0000bb]close[/color][color=#007700](); } catch ([/color][color=#0000bb]exception e[/color][color=#007700]) { [/color][color=#0000bb]log[/color][color=#007700].[/color][color=#0000bb]v[/color][color=#007700]([/color][color=#dd0000]""[/color][color=#007700], [/color][color=#dd0000]"lỗi rồi !" [/color][color=#007700]+ [/color][color=#0000bb]e[/color][color=#007700].[/color][color=#0000bb]tostring[/color][color=#007700]()); } [/color][color=#ff8000]//hiển thị đoạn code mã hóa nhị phân dưới dạng 1 chuỗi [/color][color=#0000bb]hienthiketqua[/color][color=#007700].[/color][color=#0000bb]settext[/color][color=#007700](new [/color][color=#0000bb]string[/color][color=#007700]([/color][color=#0000bb]filesbytes[/color][color=#007700])); } }); [/color][color=#0000bb]chuyentrang[/color][color=#007700].[/color][color=#0000bb]setonclicklistener[/color][color=#007700](new [/color][color=#0000bb]onclicklistener[/color][color=#007700]() { @[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]void onclick[/color][color=#007700]([/color][color=#0000bb]view v[/color][color=#007700]) { [/color][color=#ff8000]//tạo 1 gói dữ liệu mybundle [/color][color=#0000bb]bundle mybundle [/color][color=#007700]= new [/color][color=#0000bb]bundle[/color][color=#007700](); [/color][color=#ff8000]//đính kèm dữ liệu muốn gửi đi vào gói này, phân biệt chung qua key(ví dụ: "data" và "key") [/color][color=#0000bb]mybundle[/color][color=#007700].[/color][color=#0000bb]putstring[/color][color=#007700]([/color][color=#dd0000]"data"[/color][color=#007700], [/color][color=#dd0000]"tendulieu"[/color][color=#007700]); [/color][color=#0000bb]mybundle[/color][color=#007700].[/color][color=#0000bb]putstring[/color][color=#007700]([/color][color=#dd0000]"key"[/color][color=#007700], [/color][color=#0000bb]key[/color][color=#007700].[/color][color=#0000bb]gettext[/color][color=#007700]().[/color][color=#0000bb]tostring[/color][color=#007700]()); [/color][color=#0000bb]intent myintent [/color][color=#007700]= new [/color][color=#0000bb]intent[/color][color=#007700]([/color][color=#0000bb]mainactivity[/color][color=#007700].[/color][color=#0000bb]this[/color][color=#007700], [/color][color=#0000bb]activity2[/color][color=#007700].class); [/color][color=#0000bb]myintent[/color][color=#007700].[/color][color=#0000bb]putextras[/color][color=#007700]([/color][color=#0000bb]mybundle[/color][color=#007700]); [/color][color=#ff8000]//chuyển qua trang giải mã [/color][color=#0000bb]startactivity[/color][color=#007700]([/color][color=#0000bb]myintent[/color][color=#007700]); [/color][color=#ff8000]//thoát activity này [/color][color=#0000bb]finish[/color][color=#007700](); } }); } }[/color]
- activity2.java
Mã nguồn PHP:
[color=#000000]
package android[/color][color=#007700].[/color][color=#0000bb]vn[/color][color=#007700]; [/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]os[/color][color=#007700].[/color][color=#0000bb]bundle[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]view[/color][color=#007700].[/color][color=#0000bb]view[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]view[/color][color=#007700].[/color][color=#0000bb]view[/color][color=#007700].[/color][color=#0000bb]onclicklistener[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]button[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]textview[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]app[/color][color=#007700].[/color][color=#0000bb]activity[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]content[/color][color=#007700].[/color][color=#0000bb]intent[/color][color=#007700]; public class [/color][color=#0000bb]activity2 [/color][color=#007700]extends [/color][color=#0000bb]activity [/color][color=#007700]{ [/color][color=#ff8000]//private byte[] filesbytes; [/color][color=#007700]private [/color][color=#0000bb]string data[/color][color=#007700], [/color][color=#0000bb]key[/color][color=#007700], [/color][color=#0000bb]ketquagiaima[/color][color=#007700]; private [/color][color=#0000bb]textview dulieumahoa[/color][color=#007700], [/color][color=#0000bb]khoagiaima[/color][color=#007700], [/color][color=#0000bb]hienthiketquagiaima[/color][color=#007700]; private [/color][color=#0000bb]button giaima[/color][color=#007700], [/color][color=#0000bb]chuyentrang[/color][color=#007700]; private [/color][color=#0000bb]mydatabase database [/color][color=#007700]= new [/color][color=#0000bb]mydatabase[/color][color=#007700]([/color][color=#0000bb]this[/color][color=#007700]); @[/color][color=#0000bb]override [/color][color=#007700]protected [/color][color=#0000bb]void oncreate[/color][color=#007700]([/color][color=#0000bb]bundle savedinstancestate[/color][color=#007700]) { [/color][color=#0000bb]super[/color][color=#007700].[/color][color=#0000bb]oncreate[/color][color=#007700]([/color][color=#0000bb]savedinstancestate[/color][color=#007700]); [/color][color=#0000bb]setcontentview[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]layout[/color][color=#007700].[/color][color=#0000bb]activity_2[/color][color=#007700]); [/color][color=#ff8000]//nhận dữ liệu gửi từ activity khác tới [/color][color=#0000bb]bundle mybundle [/color][color=#007700]= [/color][color=#0000bb]getintent[/color][color=#007700]().[/color][color=#0000bb]getextras[/color][color=#007700](); [/color][color=#0000bb]data [/color][color=#007700]= [/color][color=#0000bb]mybundle[/color][color=#007700].[/color][color=#0000bb]getstring[/color][color=#007700]([/color][color=#dd0000]"data"[/color][color=#007700]); [/color][color=#0000bb]key [/color][color=#007700]= [/color][color=#0000bb]mybundle[/color][color=#007700].[/color][color=#0000bb]getstring[/color][color=#007700]([/color][color=#dd0000]"key"[/color][color=#007700]); [/color][color=#ff8000]//.. [/color][color=#0000bb]dulieumahoa [/color][color=#007700]= ([/color][color=#0000bb]textview[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]textview2[/color][color=#007700]); [/color][color=#0000bb]khoagiaima [/color][color=#007700]= ([/color][color=#0000bb]textview[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]textview4[/color][color=#007700]); [/color][color=#0000bb]hienthiketquagiaima [/color][color=#007700]= ([/color][color=#0000bb]textview[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]textview5[/color][color=#007700]); [/color][color=#0000bb]giaima [/color][color=#007700]= ([/color][color=#0000bb]button[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]button1[/color][color=#007700]); [/color][color=#0000bb]chuyentrang [/color][color=#007700]= ([/color][color=#0000bb]button[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]button2[/color][color=#007700]); [/color][color=#ff8000]//hiện thị các giá trị nhận được [/color][color=#0000bb]dulieumahoa[/color][color=#007700].[/color][color=#0000bb]settext[/color][color=#007700]([/color][color=#0000bb]data[/color][color=#007700]); [/color][color=#0000bb]khoagiaima[/color][color=#007700].[/color][color=#0000bb]settext[/color][color=#007700]([/color][color=#0000bb]key[/color][color=#007700]); [/color][color=#ff8000]//thiết lập lắng nge button [/color][color=#0000bb]giaima[/color][color=#007700].[/color][color=#0000bb]setonclicklistener[/color][color=#007700](new [/color][color=#0000bb]onclicklistener[/color][color=#007700]() { @[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]void onclick[/color][color=#007700]([/color][color=#0000bb]view v[/color][color=#007700]) { [/color][color=#ff8000]//hiển thị button [/color][color=#0000bb]chuyentrang[/color][color=#007700].[/color][color=#0000bb]setvisibility[/color][color=#007700]([/color][color=#0000bb]view[/color][color=#007700].[/color][color=#0000bb]visible[/color][color=#007700]); try { [/color][color=#ff8000]//mở kết nối dữ liệu [/color][color=#0000bb]database[/color][color=#007700].[/color][color=#0000bb]open[/color][color=#007700](); [/color][color=#ff8000]//lấy dữ liệu mảng giá trị nhị phân từ database [/color][color=#0000bb]byte[/color][color=#007700][] [/color][color=#0000bb]dulieumahoa [/color][color=#007700]= [/color][color=#0000bb]database[/color][color=#007700].[/color][color=#0000bb]getdata[/color][color=#007700]([/color][color=#0000bb]data[/color][color=#007700]); [/color][color=#ff8000]//đóng kết nối [/color][color=#0000bb]database[/color][color=#007700].[/color][color=#0000bb]close[/color][color=#007700](); [/color][color=#ff8000]//giải mã dữ liệu mã hóa với key ban đầu [/color][color=#0000bb]byte[/color][color=#007700][] [/color][color=#0000bb]kq [/color][color=#007700]= [/color][color=#0000bb]mycipher[/color][color=#007700].[/color][color=#0000bb]decodefile[/color][color=#007700]([/color][color=#0000bb]mycipher[/color][color=#007700].[/color][color=#0000bb]generatekey[/color][color=#007700]([/color][color=#0000bb]key[/color][color=#007700]), [/color][color=#0000bb]dulieumahoa[/color][color=#007700]); [/color][color=#ff8000]//ép giá trị giải mã về kiểu chuỗi string [/color][color=#0000bb]ketquagiaima [/color][color=#007700]= new [/color][color=#0000bb]string[/color][color=#007700]([/color][color=#0000bb]kq[/color][color=#007700], [/color][color=#dd0000]"utf-8"[/color][color=#007700]); [/color][color=#ff8000]//hiển thị kết quả giải mã [/color][color=#0000bb]hienthiketquagiaima[/color][color=#007700].[/color][color=#0000bb]settext[/color][color=#007700]([/color][color=#0000bb]ketquagiaima[/color][color=#007700]); } catch ([/color][color=#0000bb]exception e[/color][color=#007700]) { [/color][color=#ff8000]//lỗi [/color][color=#0000bb]hienthiketquagiaima[/color][color=#007700].[/color][color=#0000bb]settext[/color][color=#007700]([/color][color=#dd0000]"lỗi rồi !" [/color][color=#007700]+ [/color][color=#0000bb]e[/color][color=#007700].[/color][color=#0000bb]tostring[/color][color=#007700]()); } } }); [/color][color=#0000bb]chuyentrang[/color][color=#007700].[/color][color=#0000bb]setonclicklistener[/color][color=#007700](new [/color][color=#0000bb]onclicklistener[/color][color=#007700]() { @[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]void onclick[/color][color=#007700]([/color][color=#0000bb]view v[/color][color=#007700]) { [/color][color=#0000bb]intent myintent [/color][color=#007700]= new [/color][color=#0000bb]intent[/color][color=#007700]([/color][color=#0000bb]activity2[/color][color=#007700].[/color][color=#0000bb]this[/color][color=#007700], [/color][color=#0000bb]mainactivity[/color][color=#007700].class); [/color][color=#0000bb]startactivity[/color][color=#007700]([/color][color=#0000bb]myintent[/color][color=#007700]); [/color][color=#0000bb]finish[/color][color=#007700](); } }); }}[/color]
6) video kết quả demo:
bài viết đăng lên diễn đàn khác vui lòng ghi rõ nguồn: android.vn
pass giải nén: http://android.vn
support: thanhlong90.it@gmail.com
chúc các bạn thành công!
Chào mừng bạn đến với Điện Lạnh Lương Gia Phát - địa chỉ tin cậy cho dịch vụ sửa tủ lạnh chuyên nghiệp và uy tín. Chúng tôi hiểu rằng tủ lạnh là một trong những thiết bị điện gia dụng quan trọng nhất...
Dịch Vụ Sửa Tủ Lạnh Tại Quận 2 Chuyên Nghiệp, Giá Tốt