0

サーバー md5 とデバイス上で作成したばかりの md5 を比較する Android アプリで md5 ベリファイアを提供したいと思います。出力は、ユーザーがハッシュを比較する必要があるのではなく、正しいか正しくないかのようにする必要があります。Androidでハッシュを取得できることはすでにわかっています

/system/xbin/busybox md5sum /sdcard/Download/FILENAME

. もちろん、コマンドの出力を画面に出力できますが、それは私が望むものではありません。私は車輪を再発明したくないので、そのようなものはすでに利用可能ですか? SHA1 も可能で、両方のハッシュが利用可能です。

助けてください!

4

2 に答える 2

1

このメソッドを使用して、Android アプリケーション内で md5 を計算しました

private String getMD5(String file){
    String md5 = "";

    try {
        MessageDigest md = MessageDigest.getInstance("MD5");
        FileInputStream is = this.openFileInput(file);

        DigestInputStream dis = new DigestInputStream(is, md);
        byte data[] = new byte[1024];
        @SuppressWarnings("unused")
        int count;
        while ((count = dis.read(data)) != -1) {

        }
        byte[] digest = md.digest();

        for (int i=0; i < digest.length; i++) {
            md5 += Integer.toString( ( digest[i] & 0xff ) + 0x100, 16).substring( 1 );
        }
        return md5;
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return md5;
}
于 2013-03-27T15:20:02.367 に答える
1

「サーバーmd5」とは、md5ハッシュを含むサーバー上の別のファイルを意味していると思います。

したがって、md5 ファイルをダウンロードして開き、内部の文字列を計算された md5 と比較するだけです。

于 2013-03-27T15:17:56.407 に答える