我正在尝试生成特定计算机唯一的ID。该ID不会随机生成。这将基于计算,以便为计算机A生成的ID将是固定的,并且对于计算机A是唯一的。每次在计算机A上执行程序时,它将继续生成相同的ID,并且在另一台计算机上执行时,它将生成该计算机唯一的另一个ID。这是为了确保两台计算机没有相同的ID。
我的挑战: 为了使我的程序能够生成计算机唯一的ID,它需要基于执行该计算机的计算机唯一的种子来执行计算。
我的问题: 如何获得计算机唯一的值,以便可以将该值用作ID生成程序中的种子?
是否可以从该计算机特有的计算机硬件(例如主板)中获得价值?这样,只要不更换计算机的主板,该值很可能不会改变。
MAC地址?每个NIC都具有(为了实际目的)唯一的特性,因此即使用户是双重引导,它也可确保再现性。当然,很少有人交易卡的情况,但
结合其他指标 (不仅可以使用此功能,因为可以更改网卡),还是有可能的。
你怎么会得到它?
public static byte[] getMACAddress() throws SocketException, UnknownHostException {
InetAddress address = InetAddress.getLocalHost();
NetworkInterface networkInterface = NetworkInterface.getByInetAddress(address);
return networkInterface.getHardwareAddress();
}
如果要使用String表示形式,请执行此操作
for (int byteIndex = 0; byteIndex < macAddress.length; byteIndex++) {
System.out.format("%02X%s", macAddress[byteIndex], (byteIndex < macAddress.length - 1) ? "-" : "");
}
(感谢http://www.kodejava.org/examples/250.html)
注意: 如评论中所述,可以欺骗Mac地址。但是您谈论的只是一小部分人在这样做,除非您将其用于反盗版,否则它的独特性就足够了。
问题内容: 我正在尝试获取0到100之间的随机数。但是我希望它们是唯一的,而不是在序列中重复。例如,如果我有5个数字,它们应该是82,12,53,64,32而不是82,12,53,12,32(我使用了这个数字),但是它在序列中生成相同的数字。 问题答案: Add each number in the range sequentially in a list structure. Shuffle i
我能够使用(max-min)min公式创建1-10范围内的随机数。 这是用于在1-10之间制作随机数的代码。 这是给10-99的 但是我想生成具有特定数字或唯一数字的随机数。 以下是具体数字。 128 137 146 236 245 290 380 470 489 560 678 579 129 138 147 156 237 246 345 390 480 570 679 589 120 139
如何在cmd上运行csr生成命令。exe openssl req-节点-newkey rsa: 2048-keyoutwww_mydomain_com.key-outwww_mydomain_com.csr-subj"/C=BB/ST=CCC/L=DDD/O=EEE。/OU=IT/CN=mydomain.com"
本文向大家介绍PHP生成唯一ID之SnowFlake算法,包括了PHP生成唯一ID之SnowFlake算法的使用技巧和注意事项,需要的朋友参考一下 前言:最近需要做一套CMS系统,由于功能比较单一,而且要求灵活,所以放弃了WP这样的成熟系统,自己做一套相对简单一点的。文章的详情页URL想要做成url伪静态的格式即xxx.html 其中xxx考虑过直接用自增主键,但是感觉这样有点暴露文章数量,有同学
问题 你想随机生成一个唯一的标识符。 解决方案 可以根据一个随机数值生成一个 Base 36 编码的字符串。 uniqueId = (length=8) -> id = "" id += Math.random().toString(36).substr(2) while id.length < length id.substr 0, length uniqueId() # =
如何在1到9之间生成9个随机数,而不重复,一个接一个。它类似于:假设生成的第一个随机数是4,那么下一个随机数必须在[1,9]{4}中。我的第一种方法是将每个随机生成的数字添加到一个集合中,从而避免重复。但在更糟糕的情况下,比如我们已经生成了6个数字,我们必须再生成3个数字,这个过程会有点慢。当范围从[1,9]更改为[1,1000]时,这种方法听起来不正确。有人能提出一个替代方法吗。