DigestUtils.md5Hex返回相同的值

时间:2015-08-23 12:55:20

标签: java hash md5

任何人都可以说为什么这个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() + "");
    }
  }

1 个答案:

答案 0 :(得分:1)

抱歉,我的不好:)

显然:

rnd.nextFloat() + System.currentTimeMillis()

简单地添加2个数字,并且出现一个非常小的数字,在Java中表示为相同的字符串。