❶ android客戶端和伺服器端怎麼交互
android客戶端和伺服器端是基於IntentService的,具體如下:
後台使用簡單的servlet,支持GET或POST。這個servlet最終返回給前台一個字元串flag,值是true或false,表示登錄是否成功。
然後在安卓的ADT上創建一個安卓項目,建立兩個Activity,分別作為登錄界面和登錄成功界面。
HTTP的訪問公共類,用於處理GET和POST請求。
IntentService服務,用於在後台以隊列方式處理耗時操作。
在AndroidManifest.xml中注冊IntentService。注意uses-permission節點,為程序開啟訪問網路的許可權。
登陸界面處理,注意按鈕監聽事件中,使用Intent將要傳遞的值傳給service。接收廣播類中,同樣使用Intent將要傳遞的值傳給下一個Activity。在onCreate()中,動態注冊接收廣播類的實例receiver。在接收廣播類中,不要使用完畢後忘記注銷接收器,否則會報一個Are you missing a call to unregisterReceiver()? 的異常。
❷ 在Android上怎樣實現java和JS交互
Android中java與js交互是通過webView來交互的。
WebView(網路視圖)能載入顯示網頁,可以將其視為一個瀏覽器。它使用了WebKit渲染引擎載入顯示網頁,實現WebView有以下兩種不同的方法:
第一種方法的步驟:
1.在要Activity中實例化WebView組件:WebView webView = new WebView(this);
2.調用WebView的loadUrl()方法,設置WevView要顯示的網頁:
互聯網用:webView.loadUrl("http://www.google.com");
本地文件用:webView.loadUrl("file:///android_asset/XX.html"); 本地文件存放在:assets 文件中
3.調用Activity的setContentView( )方法來顯示網頁視圖
4.用WebView點鏈接看了很多頁以後為了讓WebView支持回退功能,需要覆蓋覆蓋Activity類的onKeyDown()方法,如果不做任何處理,點擊系統回退剪鍵,整個瀏覽器會調用finish()而結束自身,而不是回退到上一頁面
5.需要在AndroidManifest.xml文件中添加許可權,否則會出現Web page not available錯誤。
<uses-permission android:name="android.permission.INTERNET" />
第二種方法的步驟:
1、在布局文件中聲明WebView
2、在Activity中實例化WebView
3、調用WebView的loadUrl( )方法,設置WevView要顯示的網頁
4、為了讓WebView能夠響應超鏈接功能,調用setWebViewClient( )方法,設置 WebView視圖
5、用WebView點鏈接看了很多頁以後為了讓WebView支持回退功能,需要覆蓋覆蓋Activity類的onKeyDown()方法,如果不做任何處理,點擊系統回退剪鍵,整個瀏覽器會調用finish()而結束自身,而不是回退到上一頁面
6、需要在AndroidManifest.xml文件中添加許可權,否則出現Web page not available錯誤。
<uses-permission android:name="android.permission.INTERNET"/>
❸ Android 網路交互之MD5為什麼要加鹽
MD5自身是不可逆的 但是目前網路上有很多資料庫支持反查詢
如果用戶密碼資料庫不小心被泄露黑客就可以通過反查詢方式獲得用戶密碼或者對於資料庫中出現頻率較高的hash碼(即很多人使用的)進行暴力破解(因為它通常都是弱口令)
鹽值就是在密碼hash過程中添加的額外的隨機值
比如我的id是癲ω倒④ゞ 密碼是123456 存在資料庫中的時候就可以對字元串123456/癲ω倒④ゞ 進行hash,而驗證密碼的時候也以字元串(要驗證的密碼)/癲ω倒④ゞ 進行驗證
這樣有另外一個笨蛋密碼是123456的時候 依然能構造出不同的hash值 並且能成功的驗證
這時候我的id就作為鹽值 為密碼進行復雜hash了
所以么。。鹽值的作用是減少資料庫泄露帶來的損失
如果你RP非常好 猜中了我的密碼是123456 我也阻止不了你啊
一般情況下,系統的用戶密碼都會經過一系列的加密才會存儲到資料庫或者別的資源文件。
鹽值加密:把你原來密碼,加上一些鹽然後再進行一些列的加密演算法。
比如你的密碼是:899312 用戶名是:gaobing
在security 中鹽值加密可以是這樣加鹽的899312{gaobing} 然後 ,在進行一些列的加密。
上一篇日誌中介紹了三種登陸設置,這邊用資料庫的那種作為例子:
<authentication-manager
<authentication-provider user-service-ref='myUserDetailsService'
<password-encoder hash=md5<salt-source user-property=username/</password-encoder
</authentication-provider
</authentication-manager
<b:bean id=myUserDetailsService
class=org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl
<b:property name=dataSource ref=dataS /
</b:bean說明:
<salt-source user-property=username/ 這一句即聲明了所加的鹽值,即資料庫中的username欄位。
<password-encoder hash=md5 在他的屬性中指明了加鹽之後的加密演算法 即MD5(應該是32位 我測試是32位的)
這樣設置後你的資料庫中的密碼也應該是經過鹽值加密的。
比如username:gaobing 在資料庫中的password應該是899312{gaobing}經過MD5加密後的 。