日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

用随机数发生器射击自己的脚

發(fā)布時(shí)間:2023/12/3 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用随机数发生器射击自己的脚 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這將不是說(shuō)明隨機(jī)數(shù)生成器畢竟不是那么隨機(jī)的文章之一。 因此,您中的那些人希望獲得有關(guān)如何破解老虎機(jī),繼續(xù)前進(jìn)的指南,在這里什么也看不到。

相反,它是有關(guān)一個(gè)不太常見(jiàn)的鎖爭(zhēng)用問(wèn)題的帖子,該問(wèn)題隱藏在Java API的隨機(jī)數(shù)生成器中。

要打開(kāi)該主題,讓我們開(kāi)始研究如何在java.util.Random類(lèi)中處理并發(fā)。 java.util.Random的實(shí)例是線程安全的。 但是,在線程之間并發(fā)使用同一java.util.Random實(shí)例是同步的,并且我們已經(jīng)發(fā)現(xiàn)趨向于觸發(fā)影響應(yīng)用程序性能的爭(zhēng)用問(wèn)題。

在您的日常企業(yè)應(yīng)用程序中,這聽(tīng)起來(lái)似乎不是一個(gè)重要的問(wèn)題–畢竟,您實(shí)際上有多少次實(shí)際執(zhí)行了故意無(wú)法預(yù)測(cè)的事情? 相反,您只是在按照可預(yù)見(jiàn)的方式遵循業(yè)務(wù)規(guī)則。 我必須承認(rèn),盡管在某些情況下,這些業(yè)務(wù)規(guī)則比真正的隨機(jī)種子生成算法所涉及的熵甚至更大,但這完全是另一回事。

但是,魔鬼隱藏在細(xì)節(jié)中,在這種情況下,碰巧是java.util.Random的子類(lèi),即java.util.SecureRandom 。 此類(lèi),如名稱(chēng)所述,應(yīng)在隨機(jī)數(shù)生成器的結(jié)果必須是加密安全的情況下使用。 由于人類(lèi)未知的原因,在通常不希望隨機(jī)性的密碼安全方面具有重要意義的情況下,該實(shí)現(xiàn)已被選擇為許多常見(jiàn)API的主干。

我們通過(guò)密切關(guān)注鎖爭(zhēng)用檢測(cè)解決方案的采用來(lái)親身體驗(yàn)這個(gè)問(wèn)題。 根據(jù)結(jié)果??,通過(guò)看上去無(wú)害的java.io.File.createTempFile()調(diào)用觸發(fā)了Java應(yīng)用程序中最常見(jiàn)的鎖定問(wèn)題之一。 在后臺(tái),這種臨時(shí)文件的創(chuàng)建依賴(lài)于SecureRandom類(lèi)來(lái)計(jì)算文件的名稱(chēng)。

private static final SecureRandom random = new SecureRandom(); static File generateFile(String prefix, String suffix, File dir) {long n = random.nextLong();if (n == Long.MIN_VALUE) {n = 0; // corner case} else {n = Math.abs(n);}return new File(dir, prefix + Long.toString(n) + suffix); }

然后,在調(diào)用nextLong時(shí),SecureRandom最終調(diào)用其方法nextBytes() ,該方法定義為synced :

synchronized public void nextBytes(byte[] bytes) {secureRandomSpi.engineNextBytes(bytes); }

有人會(huì)說(shuō),如果我在每個(gè)線程中創(chuàng)建新的SecureRandom,我將不會(huì)遇到任何問(wèn)題。 不幸的是,這并不是那么簡(jiǎn)單。 SecureRandom使用java.security.SecureRandomSpi的實(shí)現(xiàn),無(wú)論如何最終都會(huì)爭(zhēng)奪它(您可能會(huì)在Jenkins問(wèn)題跟蹤器中看到以下帶有一些基準(zhǔn)的bug討論)

這與某些應(yīng)用程序使用模式結(jié)合在一起(尤其是如果您有許多SSL連接依靠SecureRandom來(lái)實(shí)現(xiàn)其加密握手魔術(shù)),則有形成長(zhǎng)期持久爭(zhēng)用問(wèn)題的趨勢(shì)。

如果您可以控制源代碼,則解決此問(wèn)題的方法很簡(jiǎn)單–只需重建解決方案即可依靠java.util.ThreadLocalRandom進(jìn)行多線程設(shè)計(jì)。 如果您堅(jiān)持使用標(biāo)準(zhǔn)API,則解決方案可能會(huì)更復(fù)雜,并且需要大量重構(gòu)。

故事的道德啟示? 并發(fā)很難。 尤其是在您的系統(tǒng)構(gòu)建塊沒(méi)有考慮到這一點(diǎn)時(shí)。 無(wú)論如何,我確實(shí)希望這篇文章至少?gòu)膬蓚€(gè)新庫(kù)的誕生中拯救世界,在新庫(kù)中,隨機(jī)數(shù)生成器將成為競(jìng)爭(zhēng)點(diǎn)。

翻譯自: https://www.javacodegeeks.com/2015/03/shooting-yourself-in-the-foot-with-random-number-generators.html

總結(jié)

以上是生活随笔為你收集整理的用随机数发生器射击自己的脚的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美xx孕妇 | 女女同性女同一区二区三区按摩 | 一级a毛片免费观看久久精品 | www.亚洲成人| a v视频在线观看 | 妹子干综合 | 欧美日韩成人免费观看 | 九九视频在线 | 玉足女爽爽91 | 色综合天天网 | 姑娘第5集在线观看免费 | www男人的天堂 | 国产免费一区二区三区视频 | 黄黄的视频在线观看 | 五月激情综合 | 天堂免费av| 91精品国产高潮对白 | 日本55丰满熟妇厨房伦 | 丰满少妇麻豆av苏语棠 | 伊人222成人综合网 亚洲日本中文 | 日韩中文字幕网站 | av五十路 | 国产欧美日韩三区 | 337p粉嫩色噜噜噜大肥臀 | 精品久久二区 | 国产精品国产三级国产aⅴ原创 | 国产精品成人免费一区久久羞羞 | 国产伦精品一区三区精东 | 欧美成人不卡 | 在线播放无码后入内射少妇 | 强开小嫩苞一区二区三区网站 | 一级高清视频 | 国产精品极品白嫩在线 | 亚洲日本在线观看 | 女人脱裤子让男人捅 | 国产男女猛烈无遮挡 | 亚洲熟妇无码一区二区三区 | 中文字幕av第一页 | 一卡二卡三卡 | 24小时日本在线www免费的 | 在线日韩| 69性影院| 神马午夜久久 | av观看免费在线 | 囯产精品一品二区三区 | 神马午夜伦 | 国产妇女馒头高清泬20p多 | 综合久色 | av手机 | 色综合天天综合网天天看片 | 毛片女人 | 欧美大片免费高清观看 | 成人毛片观看 | 一女三黑人理论片在线 | 免费在线观看高清影视网站 | 91蜜桃网站| 欧美日韩一区二区三区69堂 | 原创露脸88av | 麻豆免费看片 | 97伊人 | 亚洲va国产天堂va久久 en | 曰女同女同中文字幕 | 亚洲一区二区三区蜜桃 | 国产第一精品 | 双性受孕h堵精大肚生子 | 欧美日韩视频一区二区 | 欧洲精品一区 | 国产做爰xxxⅹ久久久精华液 | 久久精品免费看 | 久久精品视频99 | 亚洲精品图区 | 午夜在线看片 | 国产精品黄色在线观看 | 国产免费观看av | 日韩欧美日本 | 欧美激情在线一区 | 色激情网 | 奇米色婷婷 | 狂野欧美 | 我要看一级片 | mm视频在线观看 | 神马久久久久 | 国产精品一二区 | 中文在线一区 | 三年大全国语中文版免费播放 | 第一页国产 | 欧美成人免费一级 | 性按摩玩人妻hd中文字幕 | 91精品国产综合久久久久久 | 欧洲做受高潮免费看 | 噼里啪啦动漫 | 国产激情毛片 | 中文字幕在线观看线人 | 久久99国产精品一区 | 99热亚洲精品 | 粗喘呻吟撞击猛烈疯狂 | 国产淫片av片久久久久久 | 欧美精品在线观看一区二区 | 久久伊人草 |