MD5加密的使用

来源:互联网 发布:达内编程培训 编辑:程序博客网 时间:2024/04/30 19:09

如今,无论是在哪个方面,数据的安全性尤为重要。
md5加密是一个不可逆的操作,当然,如果你对一个数据进行简单的md5加密,还是有一些网站可以根据你的密文进行解密。如若想更安全,可以对数据进行多次加密。下面我就只加密一次来说:

将数据进行md5加密
>
* @param password 要加密的密码
* @return 加密后的密文
* @throws NoSuchAlgorithmException

public static String md5Password(String password) throws NoSuchAlgorithmException{    //获取实例:传进去的 加密方式我们要进行的是md5,所以传进去的是md5字符串    MessageDigest degiest = MessageDigest.getInstance("md5");    byte[] result =degiest.digest(password.getBytes());    StringBuffer sb = new StringBuffer();    for (byte b : result) {        int number = b&0xff+1;        String hex=Integer.toHexString(number);        if (hex.length()==1) {            sb.append("0"+hex);        }        else {            sb.append(hex);        }    }    return sb.toString();}

md5还可以查询文件的特征码,网上下载一个东西的时候,有时会提供一个md5值,这有什么用的呢,主要是查看是否被人为修改过,不同的文件特征码不同。如果利用下面的代码,查询文件的特征码跟提供的md5一致,则没有被修改过的,获取拿到这个值来看你需求做其它事。下面看代码:

>
* @查询文件的特征码
* @param path 文件的路径
* @return null 查询出现异常

public static String checkMd5file(String  path){    try {        MessageDigest digest =MessageDigest.getInstance("md5");        File file = new File(path);        FileInputStream fis = new FileInputStream(file);        int length = -1;        byte[] buffer = new byte[1024];        while((length = fis.read(buffer))!=-1){            digest.update(buffer,0,length);        }        byte[] result = digest.digest();        StringBuilder sb= new StringBuilder();        for (byte b : result) {            int number= b&0xff;            String hex=Integer.toHexString(number);            if (hex.length()==1) {                sb.append("0"+hex);            }            else {                sb.append(hex);            }        }        return sb.toString();    } catch (Exception e) {        // TODO Auto-generated catch block        e.printStackTrace();        return null;    }}
0 0
原创粉丝点击