【发布时间】:2011-12-01 06:09:05
【问题描述】:
我正在计算文件的 md5 但得到不同的结果
代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AssetManager am = getResources().getAssets();
String as = null;
try {
InputStream is=am.open("sdapk.db");
as=is.toString();
}catch(IOException e) {
Log.v("Error_E",""+e);
}
String res = md5(as);
TextView tv = new TextView(this);
tv.setText(res);
setContentView(tv);
}
public String md5(String s) {
try {
MessageDigest digest = java.security.MessageDigest.getInstance("MD5"); digest.update(s.getBytes()); byte messageDigest[] = digest.digest();
// Create Hex String
StringBuffer hexString = new StringBuffer();
for (int i=0; i<messageDigest.length; i++)
hexString.append(Integer.toHexString(0xFF & messageDigest[i]));
return hexString.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}
}
php md5 : E959637E4E88FDEC377F0A15A109BB9A
【问题讨论】:
-
您可以使用Linux命令行工具
md5sum来检查哪个是正确的。 -
我没有使用 linux。当应用程序启动时,我必须在运行时检查 md5。上面的代码给出了不同的结果。我在 php 和窗口实用程序中检查了 md5,结果是相同的,但上面的代码没有给出相同的结果。
-
问题是代码不能正常工作。查看网站上给出原始代码的讨论:Android Snippets