MD5 文件和字符串
来源:互联网 发布:vue.js省市区三级联动 编辑:程序博客网 时间:2024/05/18 01:29
package com.sangfei.safe.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
// 在线校验工具 http://tool.webmasterhome.cn/md5.asp
public class MD5Util
{
protected static char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
protected static MessageDigest messagedigest = null;
static
{
try {
messagedigest = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException nsaex) {
System.err.println(MD5Util.class .getName() + "初始化失败,MessageDigest不支持MD5Util。");
nsaex.printStackTrace();
}
}
public static String getMD5String(String s)
{
return getMD5String(s.getBytes());
}
public static String getFileMD5String(File file) throws IOException
{
InputStream fis;
fis = new FileInputStream(file);
byte[] buffer = new byte[1024];
int numRead = 0;
while ((numRead = fis.read(buffer)) > 0)
{
messagedigest.update(buffer, 0, numRead);
}
fis.close();
return bufferToHex(messagedigest.digest());
}
public static String getMD5String(byte [] bytes)
{
messagedigest.update(bytes);
return bufferToHex(messagedigest.digest());
}
private static String bufferToHex(byte bytes[])
{
return bufferToHex(bytes, 0, bytes.length);
}
private static String bufferToHex(byte bytes[], int m, int n)
{
StringBuffer stringbuffer = new StringBuffer(2 * n);
int k = m + n;
for (int l = m; l < k; l++)
{
appendHexPair(bytes[l], stringbuffer);
}
return stringbuffer.toString();
}
private static void appendHexPair(byte bt, StringBuffer stringbuffer)
{
char c0 = hexDigits[(bt & 0xf0) >> 4];
char c1 = hexDigits[bt & 0xf];
stringbuffer.append(c0);
stringbuffer.append(c1);
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
// 在线校验工具 http://tool.webmasterhome.cn/md5.asp
public class MD5Util
{
protected static char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
protected static MessageDigest messagedigest = null;
static
{
try {
messagedigest = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException nsaex) {
System.err.println(MD5Util.class .getName() + "初始化失败,MessageDigest不支持MD5Util。");
nsaex.printStackTrace();
}
}
public static String getMD5String(String s)
{
return getMD5String(s.getBytes());
}
public static String getFileMD5String(File file) throws IOException
{
InputStream fis;
fis = new FileInputStream(file);
byte[] buffer = new byte[1024];
int numRead = 0;
while ((numRead = fis.read(buffer)) > 0)
{
messagedigest.update(buffer, 0, numRead);
}
fis.close();
return bufferToHex(messagedigest.digest());
}
public static String getMD5String(byte [] bytes)
{
messagedigest.update(bytes);
return bufferToHex(messagedigest.digest());
}
private static String bufferToHex(byte bytes[])
{
return bufferToHex(bytes, 0, bytes.length);
}
private static String bufferToHex(byte bytes[], int m, int n)
{
StringBuffer stringbuffer = new StringBuffer(2 * n);
int k = m + n;
for (int l = m; l < k; l++)
{
appendHexPair(bytes[l], stringbuffer);
}
return stringbuffer.toString();
}
private static void appendHexPair(byte bt, StringBuffer stringbuffer)
{
char c0 = hexDigits[(bt & 0xf0) >> 4];
char c1 = hexDigits[bt & 0xf];
stringbuffer.append(c0);
stringbuffer.append(c1);
}
}
0 0
- MD5 文件和字符串
- 计算字符串的MD5值和MD5文件摘要
- java MD5 文件 字符串
- 文件 字符串-->MD5码
- c#中的MD5加密字符串和加密文件
- 对文件、字符串和byte数组进行MD5加密
- VB.NET-计算文件MD5值和字符串sha1加密算法
- C语言实现计算文件和字符串md5值
- 文件和字符串的加密工具类md5
- 使用Java MD5 为文件和字符串加密
- MD5加密字符串与文件
- MD5计算器,字符串&文件校验
- java中类似php md5的算法,可以取得文件,字符串和输入流的md5值
- C#获取文件MD5值或者字符串MD5值方法
- 使用Des,MD5 加密.解密.字符串.文件
- 使用Des,MD5 加密.解密.字符串.文件
- 获取文件或字符串MD5值
- 关于获取文件内容的md5字符串
- 第十七周项目六 学生成绩统计(1-3)
- Android TextUtils类介绍
- 你必须知道的 34 个简单实用的 Ubuntu 快捷键
- 第十七周项目二 引用形参
- json字串和js对象之间互相转换
- MD5 文件和字符串
- Shell常用处理字符串方法
- Mac下配置svn服务器
- 使用WITH AS提高性能简化嵌套SQL
- A Minimum Volume Covering Approach with a Set of Ellipsoids
- 【POJ3657】【USACO 2008 Jan Gold】 1.Haybale Guessing 二分答案,并查集check
- LINUX INDUSTRIAL I/O SUBSYSTEM
- eclipse中查看Android源码
- Android 仿美团网,大众点评购买框悬浮效果之修改版