任何人都可以说为什么这个Java代码会返回这么多相同的MD5值:
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/ivCover"
android:layout_width="95dp"
android:layout_height="146dp"
android:layout_marginTop="30dp"
android:layout_marginRight="30dp"
/>
<ImageView
android:layout_width="26dp"
android:layout_height="26dp"
android:src="@drawable/icon_new"
android:layout_gravity="top|right"
android:background="@drawable/shape_round_book_status"/>
</FrameLayout>
这是我得到的输出:
public static void main(String[] args) throws Exception{
Random rnd = new Random();
for (int i = 0; i < 1000; i++) {
String key = DigestUtils.md5Hex(rnd.nextFloat() + System.currentTimeMillis() + "");
System.out.println(key + ", " + rnd.nextFloat() + System.currentTimeMillis() + "");
}
}
答案 0 :(得分:1)
抱歉,我的不好:)
显然:
rnd.nextFloat() + System.currentTimeMillis()
简单地添加2个数字,并且出现一个非常小的数字,在Java中表示为相同的字符串。