Android 采用MD5注册登录,加密解密

源码下载

https://download.csdn.net/download/qq_31939617/10485341 下载

MainActivity.class

package com.example.sz.md5demo;


import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;


public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private static final String TAG = "MainActivity";


    EditText registerNumber;
    EditText registerPassword;
    Button register;

    EditText loginNumber;
    EditText loginpassword;
    Button login;

    private MD5Util md5Util = new MD5Util();


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        initView();
    }

    public void initView() {
        registerNumber = findViewById(R.id.register_number);
        registerPassword = findViewById(R.id.register_password);
        register = findViewById(R.id.btn_register);
        register.setOnClickListener(this);


        loginNumber = findViewById(R.id.login_number);
        loginpassword = findViewById(R.id.login_password);
        login = findViewById(R.id.btn_login);
        login.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_register:
                String number1 = registerNumber.getText().toString().trim();
                String password1 = registerPassword.getText().toString().trim();


                if (number1.isEmpty() || number1 == null || password1.isEmpty() || password1 == null) {
                    Toast.makeText(MainActivity.this, "不能为空", Toast.LENGTH_SHORT).show();
                } else {
                    //加密
                    String password = md5Util.encrypt(password1);
                    Log.e(TAG, "onClick: -----------------password:" + password);

                    SharedPreferences sharedPreferences = getSharedPreferences("user", Context.MODE_PRIVATE);
                    SharedPreferences.Editor editor = sharedPreferences.edit();
                    editor.putString("number", number1);
                    editor.putString("password", password);
                    editor.commit();

                    Toast.makeText(this, "--注册成功--", Toast.LENGTH_SHORT).show();
                }
                break;
            case R.id.btn_login:
                String number2 = loginNumber.getText().toString().trim();
                String password2 = loginpassword.getText().toString().trim();
                if (number2.isEmpty() || number2 == null || password2.isEmpty() || password2 == null) {
                    Toast.makeText(MainActivity.this, "不能为空", Toast.LENGTH_SHORT).show();
                } else {
                    // 1、获取Preferences
                    SharedPreferences sp = getSharedPreferences("user", 0);
                    // 2、取出数据
                    String num = sp.getString("number", "");
                    String pas = sp.getString("password", null);

                    String str = md5Util.encrypt(password2);

                    Log.e(TAG, "onClick: -------number2:"+number2+"---str:" + str);

                    Log.e(TAG, "onClick: -------num:"+num+"---pas:" + pas);


                    if (number2.equals(num) && str.equals(pas)) {
                        Toast.makeText(this, "--登录成功--", Toast.LENGTH_SHORT).show();
                    }

                }

                break;

            default:
                break;
        }
    }


}

MD5Util.class

package com.example.sz.md5demo;

import android.util.Log;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * 采用MD5加密解密

 */
public class MD5Util {
    private static final String TAG = "MD5Util";

    /***
     * MD5加码 生成32位md5码
     */
    public static String string2MD5(String inStr) {
        Log.e(TAG, "string2MD5: -------------------------");
        MessageDigest md5 = null;
        try {
            md5 = MessageDigest.getInstance("MD5");
        } catch (Exception e) {
            System.out.println(e.toString());
            e.printStackTrace();
            return "";
        }
        char[] charArray = inStr.toCharArray();
        byte[] byteArray = new byte[charArray.length];

        for (int i = 0; i < charArray.length; i++)
            byteArray[i] = (byte) charArray[i];
        byte[] md5Bytes = md5.digest(byteArray);
        StringBuffer hexValue = new StringBuffer();
        for (int i = 0; i < md5Bytes.length; i++) {
            int val = ((int) md5Bytes[i]) & 0xff;
            if (val < 16)
                hexValue.append("0");
            hexValue.append(Integer.toHexString(val));
        }
        return hexValue.toString();

    }

    /**
     * 加密解密算法 执行一次加密,两次解密
     */
    public static String convertMD5(String inStr) {
        Log.e(TAG, "convertMD5: -------------------------");
        char[] a = inStr.toCharArray();
        for (int i = 0; i < a.length; i++) {
            a[i] = (char) (a[i] ^ 't');
        }
        String s = new String(a);
        return s;

    }

    /*// 测试主函数
    public static void main(String args[]) {
        String s = new String("tangfuqiang");
        System.out.println("原始:" + s);
        System.out.println("MD5后:" + string2MD5(s));
        System.out.println("加密的:" + convertMD5(s));
        System.out.println("解密的:" + convertMD5(convertMD5(s)));

    }*/

    public String encrypt(String str) {
       // String s = new String(str);

        // MD5
         String s1 = string2MD5(str);
        //加密
         String s2 = new String(s1);


        //String s = new String(str);

        //Log.e(TAG, "show: ------------原始:" + s);
        //Log.e(TAG, "show: ------------MD5后:" + string2MD5(s));
        //Log.e(TAG, "show: ------------加密的:" + convertMD5(s));
        // Log.e(TAG, "show: ------------解密的:" + convertMD5(convertMD5(s)));
        // return convertMD5(convertMD5(s));

        return convertMD5(s2);

    }


}

源码下载

https://download.csdn.net/download/qq_31939617/10485341 下载

猜你喜欢

转载自blog.csdn.net/qq_31939617/article/details/80728459