我要对文件进行MD5签名,我现在用的是fis = new FileInputStream(file),然后直接read()方法进行了MD5加密。代码如下:
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();
我想问下我想对其编码格式指定成GBK的获取字节数组,如何做呢?如果不指定,是以什么编码格式读的字节数组呢?我指定了GBK为什么和不指定GBK获得的MD5不一样。
------解决方案--------------------
numRead = fis.read(buffer)---读不会管你原始文件里面是什么编码格式的,读出来都是二进制
MD5加密也不会管GBK中文还是非中文编码,直接二进制加密,你read出来的原始数据如果是默认的ISO8859-1,你手工转成GBK,当然MD5加密后的数据会不一样,字符集都不同了