❶ 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加密后的 。