android随笔02——MD5加密代码

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

public class Md5Utils {

private static final String YAN = "isgu&%^2345UTF23(&ywtdfkxjf47";

//YAN是随意设置的一串字母符号数字,跟密码原文组合到一起进行MD5算法加密,以起到混淆作用,可以有效干扰对密码的暴力破解​

public static String md5Encrypt(String password) {

try {

password= YAN+password;

StringBuffer sb = new StringBuffer();

MessageDigest digest = MessageDigest.getInstance("md5");// algorithm

byte[] bytes = digest.digest(password.getBytes()); // 参数是,明文字节数组,返回的就是加密后的结果,字节数组

for (byte b : bytes) { // 数byte 类型转换为无符号的整数

int n = b & 0XFF; // 将整数转换为16进制

String s = Integer.toHexString(n); // 如果16进制字符串是一位,那么前面补0

if (s.length() == 1) {

sb.append("0" + s);

} else {

sb.append(s); }

}

return sb.toString();

} catch (NoSuchAlgorithmException e) {

e.printStackTrace(); } return null; }

}

应用:

设置密码时:

String encryStr = Md5Utils.md5Encrypt(pwd1);//对输入的密码进行MD5加密

//保存加密后的结果 sp 就是SharedPreferences

sp.edit().putString("safe_key", encryStr).commit();

验证密码时:

//判断密码是否正确

//对用户输入的密码进行MD5加密

String encryPwd = Md5Utils.md5Encrypt(pwd1); //获得之前保存的密码密文

String oldPwd = sp.getString("safe_pwd", null);

if(oldPwd.equals(encryPwd)){ //密码正确 可以进入

MyUtils.showToast(ctx, "密码正确");

}else{

MyUtils.showToast(ctx, "密码不正确,请重新输入");

}

​​

​​​​

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 之前一直对加密相关的算法知之甚少,只知道类似DES、RSA等加密算法能对数据传输进行加密,且各种加密算法各有...
    Henryzhu阅读 3,080评论 0 14
  • 1、不安全的随机数生成,在CSRF TOKEN生成、password reset token生成等,会造成toke...
    nightmare丿阅读 3,813评论 0 1
  • 1.sharedpreferences的存储和读取 概论Android数据存储使用sharedpreference...
    KaelQ阅读 1,389评论 5 7
  • /**ios常见的几种加密方法: 普通的加密方法是讲密码进行加密后保存到用户偏好设置( [NSUserDefaul...
    彬至睢阳阅读 3,076评论 0 7
  • 文/废柴一号 先说一件最近从妈妈那边听来的一个故事。 外婆家隔壁有一家做牛肉生意顺带搞搞高利贷的邻居,资产保守估计...
    废柴一号阅读 444评论 0 2