MD5算法 Message-Digest Algorithm 5(信息–摘要算法)
Message
Digest
MessageDigest
MessageDigest.getInstance( );
因爲註冊登陸涉及密碼,咱們須要對用戶的密碼進行 MD5 算法加密,
MD5 算法是把任意長度的字符串變成固定長度(一般是128位)的16進制字符串,
且此算法不可逆。
具體代碼以下:css
當點擊登陸按鈕時,需判斷用戶名和密碼是否爲空。java
若爲空,則提示請輸入用戶名或密碼,
若不爲空,則獲取用戶輸入的用戶名,
因爲用的是本地數據,須要根據用戶名在 SharedPreferences 中查詢是否有對應的密碼,
如有對應的密碼且與用戶輸入的密碼(需經過 MD5 加密)比對一致狀況,則登陸成功算法
點擊登陸,查詢服務器數據庫,匹配則登陸,
進入一個新頁面顯示登陸信息,不匹配則顯示登陸失敗。sql
一、 給app分配網絡訪問的權限
二、 啓動頁面(LoginActivity)爲登陸頁面
三、 Helloword頁面(MainActivity)爲登陸成功的跳轉頁面
四、 輸入的帳號密碼正確則跳轉,不然不跳轉
五、 使用Intent實現頁面的跳轉
六、 使用httpclient發送登陸的異步請求
七、 AndroidManifest配置文件裏面添加登陸頁面的activity
八、 開發登陸接口,對app客戶端發送的登陸請求進行處理數據庫
添加httpclient框架和fastjson框架的依賴json
SQLite 是一個開源的嵌入式關係數據庫,它能夠減小應用程序管理數據的開銷 ,
SQLite 可移植性好 、 很容易使用 、 很小 、 高效並且可靠 。
目前在Android 系統中集成的是 SQLite3 版本 ,
SQLite 不支持靜態數據類型 , 而是使用列關係 。
這意味着它的數據類型不具備表列屬性 , 而具備數據自己的屬性 。
當某個值插入數據庫時, SQLite 將檢查它的類型。
若是該類型與關聯的列不匹配,則 SQLite 會嘗試將該值轉換成列類型。
若是不能轉換,則該值將做爲其自己具備的類型存儲。
SQLite 支持 NULL 、INTEGER 、 REAL 、 TEXT 和 BLOB 數據類型。例如:能夠在 Integer 字段中存放字符串,
或者在布爾型字段中存放浮點數,或者在字符型字段中存放日期型值。可是有一種例外,
若是你的主鍵是 INTEGER ,那麼只能存儲 6 4位整數 ,
當向這種字段中保存除整數之外的數據時, 將會產生錯誤 。
另外 ,
SQLite 在解 析REATE TABLE語句時,
會忽略 CREATE TABLE 語句中跟在字段名後面的數據類型信息。服務器
SQLite 的特色網絡
SQlite數據庫總結起來有五大特色:app
SQlite3不用安裝、不用配置、不用啓動、關閉或者配置數據庫實例。
當系統崩潰後不用作任何恢復操做,在下次使用數據庫的時候自動恢復。框架
它是運行在 Windows 、 Linux 、BSD 、 Mac OS X 和一些商用 Unix 系統, 好比 Sun 的 Solaris 、IBM 的 AIX ,一樣,它也能夠工做在許多嵌入式操做系統下,好比 Android 、 QNX 、VxWorks、 Palm OS 、 Symbin 和 Windows CE 。
SQLite是被設計成輕量級、自包含的。一個頭文件、一個 lib 庫,你就可使用關係數據庫了,不用任何啓動任何系統進程。
SQLite有着簡單易用的 API 接口。
SQLite的源碼達到 100% 分支測試覆蓋率。
Android 提供的 SQLiteOpenHelper.java 是一個抽象類。
那麼咱們要使用它,必須本身寫一個類來繼承它
public class DatabaseHelper extends SQLiteOpenHelper{
接下來須要寫一個
帶所有參數的DatabaseHelper類的構造函數,
之後生成數據庫對象的時候要用到:
static String name="user.db"; static int dbVersion=1;
//帶所有參數的構造函數,此構造函數必不可少 public DatabaseHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); }
爲了實現對數據庫版本進行管理, SQLiteOpenHelper 類提供了兩個重要的方法
分別onCreate(SQLiteDatabasedb) 和
onUpgrade(SQLiteDatabase db, int oldVersion, intnewVersion)
用於初次使用軟件時生成數據庫表,
後者用於升級軟件時更新數據庫表結構。
//只在建立的時候用一次 public void onCreate(SQLiteDatabase db) { String sql="create table user(id integer primary key autoincrement,username varchar(20),password varchar(20),age integer,sex varchar(2))"; db.execSQL(sql); } public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }
SQLiteDatabase.execSQL(String sql) 能夠用來執行非查詢 SQL 指令,這些指令沒有結果
包括: CREATE TABLE / DROP TABLE / INSERT 等等