一部の情報は非常に古いもの(20年以上前〜)ですので、利用する際はご注意ください(Java 1.4 とか .NET 1.0 とか、Windows 2000 とか)
お問い合せは wiki@shise.net まで。Gmail に転送されるので、スパムは全部カットされます。
MD5
指定されたファイルを読み込み、MD5の文字列を返すメソッドのコード。
MD5とは、バイト列などからユニークな32文字の文字列を取り出すような感じの奴。
たとえ1バイト違うだけで、全く違った内容の文字列になるという特徴がある。
import java.io.*; import java.security.*; public class MD5{ /** * 指定されたファイルのMD5を返すメソッドです。<BR> * 何らかのエラーが発生すると null を返します。 * * @param file MD5を調べたいファイル名。 * @return ファイルのMD5、または null */ public static String md5(String file) { try { DigestInputStream dis = new DigestInputStream( new BufferedInputStream(new FileInputStream(file)), MessageDigest.getInstance("MD5")); byte[] buf = new byte[1024]; while(true){ if (dis.read(buf,0,1024) == -1)break; } dis.close(); MessageDigest md5 = dis.getMessageDigest(); byte[] digest = md5.digest(); StringBuffer result = new StringBuffer(32); int size = digest.length; for(int i=0; i<size; i++){ int hex = digest[i] & 0xff; if(hex < 16)result.append("0"); result.append(Integer.toHexString(hex)); } return result.toString(); }catch (IOException ex){ ex.printStackTrace(); }catch (NoSuchAlgorithmException ex){ ex.printStackTrace(); } return null; } }