2016-11-21 11 views
1

Почему этот код печатает разные результаты для каждого вызова?DigestUtils.md5 возвращает разные значения для каждого вызова с той же строкой

log.info("String to MD5 ->" + FileContentRaw + "<-"); 
log.info("MD5 Result 1 Apache->" + org.apache.commons.codec.digest.DigestUtils.md5(FileContentRaw).toString() + "<-"); 
log.info("MD5 Result 2 Apache->" + org.apache.commons.codec.digest.DigestUtils.md5(FileContentRaw).toString() + "<-"); 
log.info("MD5 Result 3 Apache->" + org.apache.commons.codec.digest.DigestUtils.md5(FileContentRaw).toString() + "<-"); 
log.info("MD5 Result 4 Apache->" + org.apache.commons.codec.digest.DigestUtils.md5(FileContentRaw).toString() + "<-"); 

Это результат:

2016/11/21 11:22:29 INFO - jmeter.util.BeanShellTestElement: String to MD5 ->{"type":"StatsReq","msg":[{"symList":["AAPL.O","MFFT.O"],"startDate":"2015-01-03","endDate":"2015-01-03","dataType":"trade","assetClass":"tmx","analytics":["VWAP","TWAP"],"startTime":null,"endTime":null,"granularity":null,"granularityUnit":null,"fill":null,"timeZone":null,"inputTimeZone":null,"outputTimeZone":null,"temporality":null}],"id":"gevv4nfhbul0rrhlcco2as63to","date":"Mon, 21 Nov 2016 11:22:29 EST"}<- 

2016/11/21 11:22:29 INFO - jmeter.util.BeanShellTestElement: MD5 Result 1 Apache->[[email protected]<- 

2016/11/21 11:22:29 INFO - jmeter.util.BeanShellTestElement: MD5 Result 2 Apache->[[email protected]<- 

2016/11/21 11:22:29 INFO - jmeter.util.BeanShellTestElement: MD5 Result 3 Apache->[[email protected]<- 

2016/11/21 11:22:29 INFO - jmeter.util.BeanShellTestElement: MD5 Result 4 Apache->[[email protected]<- 
+0

любые отзывы о ответе? если это нормально, его следует принять и поддержать, чтобы другие знали, что они могут ему доверять. спасибо –

ответ

0

Ваша проблема заключается в том, что:

org.apache.commons.codec.digest.DigestUtils.md5 (...)

Возвращает байт []

Итак, вы делая toString() в массиве, который возвращает ссылку на этот массив, поэтому, даже если содержимое массива одинаково, вы каждый раз получаете другое значение для ссылки Object.

Вы должны отобразить org.apache.commons.codec.digest.DigestUtils.md5Hex(), который даст вам то же значение и является строкой.