Android 使用MD5对SharedPreferences密码进行加密

    在每个Android软件都会使用到SharedPreferences,将密码保存在本地,但是由于没有对密码进行加密,只要用户对手机进行root,获取了权限就很容易得到密码,为了防止密码外露,每个Android软件都要对SharedPreferences的密码进行加密。

在Android中提供了MD5加密,下面就对MD5加密进行一个测试,先创建一个MD5工具类

MD5Utils.java

package cn.edu.cqu.mobilesafe.utils;import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;public class MD5Utils {public static String md5Password(String password){StringBuffer sb = new StringBuffer();// 得到一个信息摘要器try {MessageDigest digest = MessageDigest.getInstance("md5");byte[] result = digest.digest(password.getBytes());// 把每一个byte做一个与运算 0xfffor (byte b : result) {// 与运算int number = b & 0xff;String str = Integer.toHexString(number);if (str.length() == 1) {sb.append("0");}sb.append(str);}} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return sb.toString();} }
在主界面上创建一个输入密码的布局文件


在java文件中实现方法

package com.example.md5test;import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.text.TextUtils;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;public class MainActivity extends Activity {private EditText et_password;private EditText et_confirm_pwd;private SharedPreferences sp;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);et_password = (EditText) findViewById(R.id.et_password);et_confirm_pwd = (EditText) findViewById(R.id.et_confirm_pwd);sp = getSharedPreferences("config", MODE_PRIVATE);}public void click(View v){String password = et_password.getText().toString().trim();String password_confirm = et_confirm_pwd.getText().toString().trim();System.out.println(password +"---"+password_confirm);if (TextUtils.isEmpty(password) || TextUtils.isEmpty(password_confirm)) {Toast.makeText(this, "密码不能为空!", 0).show();return;}else {Editor editor = sp.edit();editor.putString("password", MD5Utils.md5Password(password));editor.commit();Toast.makeText(this, "密码保存成功!", 0).show();}}
}
输入密码12345,加密之后的效果



点击下载源码



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部