2016-06-22 4 views
0

私はJavaゲームを開発しており、リソースが私が含まれているゲームと異なるものではないことを確認したいと思います。 MD5ハッシュをチェックすることでこれを行うことはできますか? ご協力いただきありがとうございます。JavaゲームでリソースのMD5ハッシュが正しいかどうかを確認するにはどうすればよいですか?

+0

実際に試しましたか?もしそうなら、結果は? – 0range

+0

「リソース」とはどういう意味ですか?これまで行ってきたことを示すことができたらうれしいです –

答えて

0

MD5を取得するコードは​​:です。リソースへのパスを受け入れ、そのリソースのバイトをバイト配列に読み込んでMD5アルゴリズムに渡すように変更しました。

import java.nio.file.Files; 
import java.nio.file.Paths; 
import java.nio.file.Path; 
import java.io.FileInputStream; 
import java.io.UnsupportedEncodingException; 
import java.math.BigInteger; 
import java.security.MessageDigest; 
import java.security.NoSuchAlgorithmException; 

    public static String getMD5(String pathToResource) { 
      Path path = Paths.get(pathToResource); 
      byte[] data = Files.readAllBytes(path); 
      try { 
       MessageDigest md = MessageDigest.getInstance("MD5"); 
       byte[] messageDigest = md.digest(data); 
       BigInteger number = new BigInteger(1, messageDigest); 
       String hashtext = number.toString(16); 
       // Now we need to zero pad it if you actually want the full 32 chars. 
       while (hashtext.length() < 32) { 
        hashtext = "0" + hashtext; 
       } 
       return hashtext; 
      } 
      catch (NoSuchAlgorithmException e) { 
       throw new RuntimeException(e); 
      } 
     } 
+0

私は.pngリソースとそのようなことについて話しています – HitshotPlayZ

+0

この関数を変更して、byte []配列を受け取り、それをmd.digestに渡す必要があります()。私は私の答えを変更します。 – Dziugas

+0

助けてくれてありがとう – HitshotPlayZ

関連する問題