MD5簡單一實例,md5執行個體

來源:互聯網
上載者:User

MD5簡單一實例,md5執行個體

當點擊按鈕時,會先判斷是否第一次登陸,如果是第一次登陸登陸則會彈出設定密碼的彈窗,若果登陸過則彈出登陸彈窗

其中輸入的密碼會用MD5加密下

package com.org.demo.wangfeng.demo;import com.org.wangfeng.R;import android.app.Activity;import android.app.AlertDialog;import android.content.SharedPreferences;import android.os.Bundle;import android.text.TextUtils;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class HomeActivity extends Activity {    private Button bbButton;    private SharedPreferences mPref;    @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.homeactivity);        mPref = getSharedPreferences("config", MODE_PRIVATE);        bbButton = (Button) findViewById(R.id.bb_home);        bbButton.setOnClickListener(new OnclickItem());    }    private class OnclickItem implements View.OnClickListener {        @Override        public void onClick(View arg0) {            // TODO Auto-generated method stub            String savedPassword = mPref.getString("password", null);            if(!TextUtils.isEmpty(savedPassword)){                //輸入密碼彈窗                showPasswordInputDialog();            }else{                //如果沒有設定過,彈出設定密碼的彈窗                showPasswordSetDialog();            }        }    }    /**     * 設定密碼的彈窗     */    private void showPasswordSetDialog() {        AlertDialog.Builder builder = new AlertDialog.Builder(this);        final AlertDialog dialog = builder.create();        View view = View.inflate(this, R.layout.dialog_set_password, null);        dialog.setView(view, 0, 0, 0, 0);// 設定邊距為0,保證在2.x的版本上運行沒問題        final EditText edPassWord = (EditText) view                .findViewById(R.id.et_password);        final EditText edPassWordConfirm = (EditText) view                .findViewById(R.id.et_password_confirm);        Button btnOK = (Button) view.findViewById(R.id.btn_ok);        Button btnCancel = (Button) view.findViewById(R.id.btn_cancel);        btnOK.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View arg0) {                // TODO Auto-generated method stub                String password = edPassWord.getText().toString();                String passwordConfirm = edPassWordConfirm.getText().toString();                if (!TextUtils.isEmpty(password) && !passwordConfirm.isEmpty()) {                    // 當輸入的2個內容相同                    if (password.equals(passwordConfirm)) {                        Toast.makeText(HomeActivity.this, "登陸成功",                                Toast.LENGTH_SHORT).show();                        // 將密碼儲存起來                        mPref.edit()                                .putString("password",                                        MD5Utils.encode(password)).commit();                        dialog.dismiss();                    } else {                        Toast.makeText(HomeActivity.this, "2此輸入密碼不一致",                                Toast.LENGTH_SHORT).show();                    }                } else {                    Toast.makeText(HomeActivity.this, "輸入內容不可為空",                            Toast.LENGTH_SHORT).show();                }            }        });        btnCancel.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View arg0) {                // TODO Auto-generated method stub                dialog.dismiss();            }        });        dialog.show();    }    /**     * 輸入密碼彈窗     */    private void showPasswordInputDialog() {        AlertDialog.Builder builder = new AlertDialog.Builder(this);        final AlertDialog dialog = builder.create();        View view = View.inflate(this, R.layout.dialog_input_password, null);        dialog.setView(view, 0, 0, 0, 0);        final EditText etPassword = (EditText) view                .findViewById(R.id.et_password);        Button btnOk = (Button) view.findViewById(R.id.btn_ok);        Button btnCancel = (Button) view.findViewById(R.id.btn_cancel);        btnOk.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View arg0) {                // TODO Auto-generated method stub                String password = etPassword.getText().toString();                if (!TextUtils.isEmpty(password)) {                    String savedPassword = mPref.getString("password", null);                    if (MD5Utils.encode(password).equals(savedPassword)) {                        Toast.makeText(HomeActivity.this, "登陸成功",                                Toast.LENGTH_SHORT).show();                        dialog.dismiss();                    } else {                        Toast.makeText(HomeActivity.this, "密碼錯誤",                                Toast.LENGTH_SHORT).show();                    }                } else {                    Toast.makeText(HomeActivity.this, "輸入內容不可為空",                            Toast.LENGTH_SHORT).show();                }            }        });        btnCancel.setOnClickListener(new View.OnClickListener() {                        @Override            public void onClick(View arg0) {                // TODO Auto-generated method stub                dialog.dismiss();            }        });        dialog.show();    }}
package com.org.demo.wangfeng.demo;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;public class MD5Utils {    /**     * md5加密     *      * @param password     * @return     */    public static String encode(String password) {        try {            MessageDigest instance = MessageDigest.getInstance("MD5");// 擷取MD5演算法對象            byte[] digest = instance.digest(password.getBytes());// 對字串加密,返回位元組數組            StringBuffer sb = new StringBuffer();            for (byte b : digest) {                int i = b & 0xff;// 擷取位元組的低八位有效值                String hexString = Integer.toHexString(i);// 將整數轉為16進位                if (hexString.length() < 2) {                    hexString = "0" + hexString;// 如果是1位的話,補0                }                sb.append(hexString);            }            return sb.toString();        } catch (NoSuchAlgorithmException e) {            e.printStackTrace();            // 沒有該演算法時,拋出異常, 不會走到這裡        }        return "";    }}
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#fff" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#66ff6600" android:gravity="center" android:padding="10dp" android:text="設定密碼" android:textColor="@android:color/black" android:textSize="20sp" /> <EditText android:id="@+id/et_password" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="請輸入密碼" android:inputType="textPassword" > </EditText> <EditText android:id="@+id/et_password_confirm" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="請再次輸入密碼" android:inputType="textPassword" > </EditText> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <Button android:id="@+id/btn_ok" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="確定" /> <Button android:id="@+id/btn_cancel" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="取消" /> </LinearLayout></LinearLayout>View Code

 

其實在android裡 if(text ==null || text.length()==0)是有封裝的。
在android.text.TextUtils裡

public static boolean isEmpty(CharSequence str) {        if (str == null || str.length() == 0)            return true;        else            return false;    }所以我們可以使用
TextUtils.isEmpty(text)

代替

if(text == null || text.length() == 0)

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.