015 Android md5密码加密及其工具类

1.md5加密介绍

MD5算法是广泛使用的杂凑函数,也就是哈希函数,英文全拼是:Message Digest Algorithm,对应的中文名字是消息摘要算法。

MD5加密:将字符串转换成 32位的字符串(随机生成16进制的字符0-F、不可逆)

MD5加密的特点:

(1)一个任意长度的数据,经过MD5计算后就会得到一个长度固定的十六进制字符串; 

(2)MD5算法消耗较低,不会在性能在造成压力; 
(3)抗修改性很强,相差极小的两个原数据的MD5值差异会很大 
(4)抗碰撞性也很强,伪造数据的难度很大

2.MD5工具类

复制代码
package com.example.administrator.test62360safeguard.Utils;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Util {
    public static void main(String[] args) {
            String psw="123";
            encoder(psw);
    }

    /**
     * 给指定字符串按照md5算法进行加密
     * @param psw 需要加密的密码
     */
    public static String encoder(String psw) {
        try {
            psw=psw+"safeguard"; //密码加盐
            //1.指定加密算法
            MessageDigest digest=MessageDigest.getInstance("MD5");
            //2.将需要的字符串转换为byte类型的数组,然后进行随机哈希过程
            byte[] bs=digest.digest(psw.getBytes());
            System.out.println(bs.length);
            //3.循环遍历bs,然后让其生成32位的字符串(固定写法),拼接字符串
            StringBuffer sb=new StringBuffer();
            for (byte b : bs) {
                int i=b&0xff; //固定写法
                //将int类型的i转换成16进制的字符
                String hexStr=Integer.toHexString(i);
                if(hexStr.length()<2){
                    hexStr="0"+hexStr;
                }
                sb.append(hexStr);
            }
            //System.out.println(sb);
            return sb.toString();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return "";
    }
}
复制代码

 

posted @   雨后观山色  阅读(222)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示