这段MD5加密算法是什么意思,谁能帮我解释下?不会JAVA看不懂。。。

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.security.MessageDigest;

public class CreateMD5 {

public static byte[] getMD5(File file) {

FileInputStream fis = null;
try {
MessageDigest md = MessageDigest.getInstance("MD5");
fis = new FileInputStream(file);
byte[] buffer = new byte[2048];
int length = -1;

while ((length = fis.read(buffer)) != -1) {
md.update(buffer, 0, length);
}
byte[] b = md.digest();

return b;
} catch (Exception ex) {
ex.printStackTrace();
return null;
} finally {
try {
fis.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}

public static byte[] getMD5(File file) {

FileInputStream fis = null;//定义文件字节流
try {
MessageDigest md = MessageDigest.getInstance("MD5");//创建MD5加密使用的对象
fis = new FileInputStream(file);//读取需要加密的文件,并封装如流对象里面
byte[] buffer = new byte[2048];//创建字节数据,用于将文件中的字符转换成字节
int length = -1;
//fis.read--从此输入流中将最多 buffer.length 个字节的数据读入一个 byte 数组中
//如果长度为-1说明已经读到最后则跳出循环
while ((length = fis.read(buffer)) != -1) {
//使用指定的 byte 数组,从头开始按照MD5进行编码
md.update(buffer, 0, length);
}
byte[] b = md.digest();//该方法的调用表示完成的编码计算

return b;
} catch (Exception ex) {
ex.printStackTrace();
return null;
} finally {
try {
fis.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}

大体上就是这么个意思追问

请问是将整个文件进行MD5加密运算还是只是把byte数组中读到的2048个字节进行MD5加密运算?

追答

是按照你设定的字节数组长度来从fis对象里面顺序读入,外层使用的是while循环知道fis里面的数据全部读完,这时候加密的数据通过 byte[] b = md.digest();赋值到字节数组b中。

追问

那就是读取出文件里的所有数据,然后加密运算,再把加密得到的MD5码赋值到b中咯?

追答

是的

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-10
•MessageDigest.getInstance("MD5"):创建消息摘要。
•.update(plaintext):用明文字符串计算消息摘要。
•.digest():读取消息摘要。

这段程序的意思是 对给入的一个文件,每一行进行加密
第2个回答  2012-05-09
MessageDigest md = MessageDigest.getInstance("MD5");
获取 MD5加密的一个实例
fis = new FileInputStream(file);
对传进来的文件进行操作(读取到程序中)
while ((length = fis.read(buffer)) != -1) {
md.update(buffer, 0, length);
}

将每次读到的值放在数组byte(buffer )中
进行加密md.update(buffer, 0, length);
return b; 返回加密后的byte数组

MD5是什么意思?好象是和杀毒软件有关的!具体我不清楚!
MD5 是一种不可逆的加密算法 ,MD5在论坛上、软件发布时经常用,是为了保证文件的正确性,防止一些人盗用程序,加些木马或者篡改版权,设计的一套验证系统。每个文件都可以用MD5验证程序算出一个固定的MD5码来。软件作者往往会事先计算出他的程序的MD5码并帖在网上。因此,在网上看到某个程序下载旁注明...

下载后请您务必校对MD5码,这句话是什么意思啊
MD5的全称是Message-Digest Algorithm 5(信息-摘要算法)md5是一种加密算法。我所说的是它的一种用法。比如说,谁写了个软件,发布在网上。为了防止有人改了再发布,先用md5工具算出一个值。 别人如果改动了这个包添加修改东西,即使大小一样,也基本上不可能使两个包的md5出来的值完全一样,这样就...

视频md5是什么意思MD5是什么意思
1、首先,MD5是一种不可逆的加密算法,目前是最牢靠的加密算法之一,尚没有能够逆运算的程序被开发出来,它对应任何字符串都可以加密成一段唯一的固定长度的代码。2、 那么它有什么用呢?很简单,通过它可以判断原始值是否正确(是否被更改过)。3、一般用于密码的加密。4、而我们所提供的MD5校验码就...

牛人啊,MD5解密算法
MD5是摘要算法,类似有损压缩一样,不能复原的,因此不能解密。网上的使用一般是在用户点击提交的时候用js,或Java 加密后的密码存到数据库中,这时候别人如果打开数据库看也不知道你原来的密码是什么。但是你登录的时候输入密码后再重新用MD5摘要加密,看看出来的结果与数据库中是否一致,如果一致登录成...

ospf中的md5是什么意思,他与明文认证有什么不同
是一种加密算法。MD5认证,明文认证都是ospf邻居之间认证的方式。两者验证方式原理相同,都是发送密码给对方,不同的是密码是否被加密。明文认证直接发送字符串给对方作对比,很容易被人抓包截获。MD5是通过不可逆算法,把密码计算一下,得出一个值,然后把这个值发送给对方,更安全。

Java MD5和SHA256等常用加密算法
MD5,全称信息摘要算法,是一种常见的128位(16字节)散列函数。它通过复杂的算法操作,将明文转化为无法还原的密文,确保信息传输的一致性。尽管MD5常用于密码的存储,但需注意,由于其本质上是摘要而非加密,生成的128位字符串是单向的,无法逆向获取原始信息。在找回密码时,我们只能通过对比用户输入的...

MD5文件是什么?能不能解释的通俗点?
md5是加密算法的一种,每个不同的字符(编码)加密后都不同,用来识别同样的电影(数据)内容,基本上就不会搞错。根据你的情况,这里的md5,是系统用来机器识别电影的工具。

三分钟了解MD5加密后16位与32位的区别
MD5加密算法具有不可逆性,意味着加密后的数据无法直接解密到原始数据,解密过程只能通过尝试所有可能的明文并计算其MD5值,与已知MD5值进行对比来实现。这极大地提高了数据的安全性。MD5加密结果有两种长度:16位和32位。32位是默认设置,而16位实际上是直接从32位字符串中截取中间的第9位到第24位。在...

java现在md5加密不安全了吗?
针对md5加密是否不安全的讨论,首先需要明确md5并非加密算法,而是一种摘要算法。它用于将任意长度的数据转换为固定长度的输出,常用于数据完整性校验。然而,md5的安全性在逐渐降低,原因在于其输出的哈希值容易被碰撞,即两个不同的输入可能产生相同的输出哈希值。md5的不安全性体现在其哈希值的碰撞风险上...

MD5加密的动网密码,谁帮我破解下??850f37dc747d4692
MD5的加密算法是公开的,但该算法是不可逆的,也就是说只能用穷举法破解(就是通常说的爆破了)。如果这个密码超过十位,而且包括字母和数字,那计算量就是天文数字了,用我们的PC跑,半年时间都不见得会有结果!所以如果真的想别人帮忙破的话,至少应该提供相关信息,包括密码大概有多少位,是纯数字,...

相似回答