chào các bạn bây h long sẽ hướng dẫn các bạn một chủ đề mới toanh trong lập trình ứng dụng android và long đảm bảo các bạn sẽ không tìm thấy bài nào tương tự như bài này ở các diễn đàn khác đâu nhé. đó mà mã hóa và giải mã dữ liệu.
[img]data/attachments/13/13867-4fb9a3277f378924f1ac76d8f8376952.jpg[/img]
1) source code demo:
click vào đây để download source code demo.
2) mã hóa dữ liệu (encode) là gì?
là chuyển hóa dữ liệu này thành 1 dạng dữ liệu mới mà người dùng không thể đọc được hoặc hiểu được nó. bằng cách sử dụng các thuật toán lồng vào nhau, thương dựa trên 1 khóa (key) để mã hóa dữ liệu.
3) giải mã dữ liệu (decode) mã hóa là gì?
là khôi phục một dữ liệu đã bị mã hóa trở về dữ liệu kiểu ban đầu của nó dựa vào khóa (key) đã thiết lập. nếu không có key này, người khác không thể giải mã được nó!
4) hình ảnh làm ứng dụng demo:
[img]data/attachments/13/13866-a0ac104f63fe2cb6a6f4710446f7c9f2.jpg[/img]
5) hướng dẫn code:
- 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]
- mycipher.java (class thực hiện mã hóa và giải mã)
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]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 hienthiketquamahoa[/color][color=#007700], [/color][color=#0000bb]hienthiketquagiaima[/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], [/color][color=#0000bb]kq[/color][color=#007700]; private [/color][color=#0000bb]string ketquagiaima [/color][color=#007700]= [/color][color=#dd0000]""[/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 các đối tượng xml để sử dụng 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]hienthiketquamahoa [/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]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]textview4[/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]//thực hiện việc mã hóa và hiển thị code đã mã hóa [/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](); [/color][color=#0000bb]string ketquastring [/color][color=#007700]= [/color][color=#dd0000]""[/color][color=#007700]; try { [/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=#0000bb]ketquastring [/color][color=#007700]= new [/color][color=#0000bb]string[/color][color=#007700]([/color][color=#0000bb]filesbytes[/color][color=#007700], [/color][color=#dd0000]"utf-8"[/color][color=#007700]); [/color][color=#ff8000]//đồng thời thực hiện việc giải mã [/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]khoamahoa[/color][color=#007700]), [/color][color=#0000bb]filesbytes[/color][color=#007700]); [/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]); } 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=#0000bb]hienthiketquamahoa[/color][color=#007700].[/color][color=#0000bb]settext[/color][color=#007700]([/color][color=#0000bb]ketquastring[/color][color=#007700]); } }); [/color][color=#ff8000]//hiển thị kết quả giải mã khi click vào button [/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]hienthiketquagiaima[/color][color=#007700].[/color][color=#0000bb]settext[/color][color=#007700]([/color][color=#0000bb]ketquagiaima[/color][color=#007700]); } }); }}[/color]
6) video clip kết quả chạy demo:
nâng cao với thủ thuật lưu trữ dữ liệu mã hóa trên database tại đây!
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!
Buồi giả Giống Thật Có Rung Ngoáy Strong Vibe một trong những dòng sản phẩm được chuộng bậc nhất trong phân khúc các loại đồ chơi dục tình với giá rẻ mà độ sướng không hề kém cạnh các sản phẩm đắt...
Phân khúc đồ chơi tình dục giá rẻ. cu giả cầm tay có rung ngoáy