2012-05-29 3 views
0

Мне нужно вычислить контрольную сумму csv-файла. Контрольная сумма будет меняться каждый раз, когда данные в файле будут изменены. В этом отношении я не нашел ничего полезного в Интернете.Как сгенерировать контрольную сумму md5 для файла CSV в JSP

+1

Google сообщает ответ: http://www.jguru.com/faq/view.jsp?EID=216274. Вы можете легко заменить CRC32 на MD5. – Raptor

+1

@ShivanRaptor Вы должны опубликовать это как ответ. – Zoot

+0

@Zoot: это не правильный ответ. CheckedInputStream не поддерживает MD5. – BalusC

ответ

2

Прежде всего, эта проблема не относится к JSP. JSP - это всего лишь генератор кода HTML. Написание Java-кода в JSP-файле вместо обычного Java-класса не делает его проблемой JSP. Вы бы больше помогли бы, если бы сосредоточились на решении будущих проблем Java, используя ключевое слово «Java», не используя ключевое слово «JSP».

Сказал, что вы можете просто использовать MessageDigest, который вы обновляете с байтами, считанными из файла.

FileInputStream input = new FileInputStream("/path/to/file.csv"); 
MessageDigest md5 = MessageDigest.getInstance("MD5"); 
byte[] buffer = new byte[10240]; 

for (int length = 0; (length = input.read(buffer)) > 0;) { 
    md5.update(buffer, 0, length); 
}  

byte[] hash = digest.digest(); 

Возможно, вы захотите преобразовать хэш в шестнадцатеричный.

StringBuilder hex = new StringBuilder(hash.length * 2); 

for (byte b : hash) { 
    if ((b & 0xff) < 0x10) { 
     hex.append("0"); 
    } 

    hex.append(Integer.toHexString(b & 0xff)); 
} 

String hexString = hex.toString(); 
Смежные вопросы