MessageDigest获取字符串或文件MD5详解
来源:互联网 发布:人工智能剧情结局 编辑:程序博客网 时间:2024/06/07 08:08
MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值。
MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。
MD5算法具有以下特点:
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
可以用于
加密密码。
数据校验。例:下载文件时保证文件的完整性。
public static String InputStreamMd5(InputStream is){String md5 ="";try {MessageDigest ms = MessageDigest.getInstance("MD5");byte[] bytes = new byte[1024*3];int read = 0;try {while((read = is.read(bytes)) !=-1){ms.update(bytes, 0, read);}//拿到结果byte[] result = ms.digest();StringBuilder sb = new StringBuilder();//默认为16//StringBuilder sb = new StringBuilder(32);//初始容量设置为32//// 遍历字节数组,通过位运算(位运算效率高),转换成字符放到字符数组中去for(byte b : result){sb.append(hexDigits[b>>>4 & 0xf]);sb.append(hexDigits[b&0xf]);}md5 = sb.toString();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}} catch (NoSuchAlgorithmException e) {// TODO Auto-generated catch blocke.printStackTrace();}return md5;}
public static String StringMd5(String input){byte[] result = null;try {MessageDigest md = MessageDigest.getInstance("MD5");byte[] inputByteArray = input.getBytes();md.update(inputByteArray); result = md.digest(inputByteArray);} catch (NoSuchAlgorithmException e) {// TODO Auto-generated catch blocke.printStackTrace();}return byteArrayToHex(result);}/** * 字节数组转16进制字符串 * @param byteArray * @return */public static String byteArrayToHex(byte[] byteArray){char[] hexDigits = "0123456789abcdef".toCharArray();char[] resultCharArray =new char[byteArray.length * 2];int index = 0; for (byte b : byteArray) { resultCharArray[index++] = hexDigits[b>>> 4 & 0xf]; resultCharArray[index++] = hexDigits[b& 0xf]; }return new String(resultCharArray);}
0 0
- MessageDigest获取字符串或文件MD5详解
- Java利用MessageDigest获取字符串或文件MD5详解
- Java利用MessageDigest获取字符串或文件MD5详解
- Java利用MessageDigest获取字符串或文件MD5详解
- Java利用MessageDigest获取字符串或文件MD5详解
- 加密:Java利用MessageDigest获取字符串或文件MD5详解
- Java利用MessageDigest获取字符串或文件MD5详解
- Java利用MessageDigest获取字符串或文件MD5详解
- Java利用MessageDigest获取字符串或文件MD5详解
- Java利用MessageDigest获取字符串或文件MD5详解
- 获取文件或字符串MD5值
- 【Android数据加密与完整性校验之使用MessageDigest类进行MD5/SHA1】MessageDigest类对文件或字符串生成加密摘要进行完整性校验(一)
- 【Android数据加密与完整性校验之使用MessageDigest类进行MD5/SHA1】MessageDigest类对文件或字符串生成加密摘要进行完整性校验(三)
- java 获取字符串或文件的md5值
- 使用MessageDigest 对字符串进行 MD5 或者 SHA1 SHA2 加密。
- 关于获取文件内容的md5字符串
- C#获取文件MD5值或者字符串MD5值方法
- MessageDigest 详解
- 五、Mybtis实现关联表查询
- printf函数详解
- nodejs中Async库介绍
- (40)类
- 基于 Redis lua流控
- MessageDigest获取字符串或文件MD5详解
- Jump Game
- opencv学习(十三)之文本文字插入
- Linux内核源码目录结构
- Java多线程学习
- OpenCV同态滤波
- 联合体的用法与特点
- LogMiner配置使用手册
- 几种改良的排序,堆排序,希尔排序,快速排序--堆排序篇(改良的选择排序算法)