热门搜索

短视频 自媒体 web3.0MetaForce原力元宇宙 网站SEO 电商 创业模式 打字 站长知识
登录成功

账号登录

还没有账号? 去注册 >

忘记密码

注册

已有账号 去登录 >

邮箱注册

已有账号 去登录 >

当前位置: 首页 / 白手起家 / MD5信息摘要算法,md5是对称加密算法么

MD5信息摘要算法,md5是对称加密算法么

珠海网上副业网

MD5信息摘要算法,md5是对称加密算法么

MD5 Message-Digest Algorithm

一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value)md5是什么,用于确额信息传输完整一致。

MD5信息摘要算法,md5是对称加密算法么

MD5算法额法额碰撞md5是什么,因此不适用于安额性认证珠海哪里有副业可以做,如SSL公开密钥认证或是数字签名等用途。

主要应用:

密码管理,电子签名,文件完整性校验

MD5信息摘要算法,md5是对称加密算法么

JAVA额码实现方法一:

package md5;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5One {
    public static void main(String[] args) {
        // 3G的大文件
        String path = "e:/account.csv";
        long start = System.currentTimeMillis();
        String md5 = MD5One.getMD5(path);
        // 20e7ba44fdbab26c74e2a7aa7336c0e7
        System.out.println(md5);
        System.out.println("耗时:"+(System.currentTimeMillis()-start));
    }
    public static String getMD5(String path) {
        BigInteger bi = null;
        try {
            byte[] buffer = new byte[8192];
            int len = 0;
            MessageDigest md = MessageDigest.getInstance("MD5");
            FileInputStream fis = new FileInputStream(new File(path));
            while ((len = fis.read(buffer)) != -1) {
                md.update(buffer, 0, len);
            }
            fis.close();
            byte[] b = md.digest();
            bi = new BigInteger(1, b);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return bi.toString(16);
    }
}

方法二:

MD5信息摘要算法,md5是对称加密算法么

使用commons-codec工具包

package md5;
import org.apache.commons.codec.digest.DigestUtils;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class MD5Two {
    public static void main(String[] args) {
        String path = "e:/account.csv";
        long start = System.currentTimeMillis();
        // 20e7ba44fdbab26c74e2a7aa7336c0e7
        System.out.println(md5(path));
        System.out.println("耗时:"+(System.currentTimeMillis()-start));
    }
    public static String md5(String path) {
        String md5 = null;
        try {
            md5 = DigestUtils.md5Hex(new FileInputStream(new File(path)));
        } catch (IOException e) {
            e.printStackTrace();
        }
//        System.out.println(md5);
        return md5;
    }
}

同样是3G的大文件处理,方法一耗时9秒左右,方法二耗时14秒左右。

读者福利:珠海副业副业网限时额费提供情感项目创业共赢,有执行力和2小时以上空闲时间的来,加微信: 446471435 →额了解咨询 !

标签:

相关推荐

客服
客服二维码

TOP