我试图散列图像并在文本字段中的字符串中显示哈希结果,代码正在运行,但结果始终为" null"在哈希码的开头。
bitmap1 = BitmapFactory.decodeFile(picturePath1,opt);
ImageView view1 = (ImageView) findViewById(R.id.gambar5);
view1.setImageBitmap(bitmap1);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
bitmap1.compress(Bitmap.CompressFormat.PNG, 100, outputStream);
byte[] data1 = outputStream.toByteArray();
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(data1);
byte[] hash = md.digest();
String result = returnHex(hash);
EditText et1 = (EditText) findViewById(R.id.editText1);
et1.setText(result);
我正在使用此网站的returnHex功能 returnHex
这是功能代码
static String returnHex(byte[] inBytes) throws Exception {
String hexString = null;
for (int i=0; i < inBytes.length; i++) { //for loop ID:1
hexString += Integer.toString( ( inBytes[i] & 0xff ) + 0x100, 16).substring( 1 );
}// Belongs to for loop ID:1
return hexString;
}
结果始终返回&#34; null&#34;像前一样:null8984fb2c1ba6ec6571d365553e466c95c94eba9d6fb2079af03
我的问题是: 1.什么是&#34; null&#34;总是出现?它是哈希代码还是错误的一部分? 2.如果&#34; null&#34;是一个错误,我怎么能不把它包含在结果中?
答案 0 :(得分:0)
您将字符串设置为null
然后附加到它;还会发生什么?
将其设置为空字符串以对其进行初始化,例如String hexString = "";