源码下载

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 下载

更多相关文章

  1. Android中base64加密后的字符串带有“\n”导致出错的问题解决
  2. 关于Android(安卓)混淆的内容总结
  3. Android(安卓)学习 设备管理器勾选后不能再取消了
  4. Android关于短信加密
  5. Android关于短信加密
  6. Android(安卓)AES加密算法及其实现
  7. Android应用安全风险与防范
  8. Android(安卓)解析jwt遇到java.lang.IllegalArgumentException:
  9. 在做Android中GIF遇到不能显示的问题

随机推荐

  1. 大数据成神之路-Java高级特性增强(Concur
  2. 数据搬运组件:基于Sqoop管理数据导入和导
  3. CentOS下搭建MySql(RPM包)
  4. 大数据成神之路-Java高级特性增强(多线程
  5. 大数据成神之路-Java高级特性增强(Volati
  6. DolphinDB客户端软件教程
  7. Think PHP框架清除运行时缓存(php文件目录
  8. 无法访问此卷不包含可识别的文件系统 chk
  9. FlinkSQL演进过程,解析原理及一些优化策略
  10. 粉丝福利 | 秒 get 支付宝同款扫码组件