第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在數(shù)據(jù)庫中存儲bcrypt哈希密碼應(yīng)該使用什么列類型/長度?

在數(shù)據(jù)庫中存儲bcrypt哈希密碼應(yīng)該使用什么列類型/長度?

斯蒂芬大帝 2019-07-13 19:00:10
我想將散列密碼(使用bcrypt)存儲在數(shù)據(jù)庫中。什么樣的類型是好的,哪一種是正確的長度?使用bcrypt加密的密碼總是長度相同的嗎?編輯示例散列:$2a$10$KssILxWNR6k62B7yiX0GAe2Q7wwHlrzhF3LqtVvpyvHZf0MwvNfVu在散列一些密碼后,bcrypt似乎總是生成60個字符哈希。編輯2很抱歉沒有提到實施。我在用jBCrypt.
查看完整描述

3 回答

?
蕪湖不蕪

TA貢獻(xiàn)1796條經(jīng)驗 獲得超7個贊

bcrypt的模塊加密格式由以下內(nèi)容組成

  • $2$,?$2a$

    $2y$

    標(biāo)識

    散列算法與格式

  • 表示成本參數(shù)的兩位數(shù)值,后面跟著

    $

  • 53個字符長-64編碼值(他們使用字母表)

    .,?/,?09,?AZ,?az

    標(biāo)準(zhǔn)堿基64編碼

    (字母表)包括:
    • 22個字符(實際上只有132位解碼比特中的128位)
    • 加密輸出的31個字符(實際上186位解碼比特中只有184位)

因此,總長度分別為59或60字節(jié)。

當(dāng)您使用2a格式時,您將需要60個字節(jié)。因此,對于MySQL,我建議使用CHAR(60) BINARYBINARY(60)(見這個垃圾箱和雙星??庇嘘P(guān)差異的信息)。

CHAR不是二進(jìn)制安全的,等式不是完全依賴于字節(jié)值,而是依賴于實際的排序規(guī)則;在最壞的情況下。


查看完整回答
反對 回復(fù) 2019-07-13
?
慕森卡

TA貢獻(xiàn)1806條經(jīng)驗 獲得超8個贊

如果您正在使用PHP的password_hash()帶著PASSWORD_DEFAULT生成bcrypt哈希的算法(我假設(shè)有很大比例的人閱讀這個問題)一定要記住,在將來password_hash()可能會使用不同的算法作為默認(rèn)值,因此可能會影響哈希的長度(但不一定更長)。

從手冊頁:

請注意,隨著PHP添加了新的和更強(qiáng)的算法,這個常量被設(shè)計成隨著時間的推移而改變。因此,使用此標(biāo)識符的結(jié)果的長度會隨著時間的推移而改變。因此,建議將結(jié)果存儲在可擴(kuò)展超過60個字符的數(shù)據(jù)庫列中。(255個字符將是一個不錯的選擇)。

使用bcrypt,即使您有10億用戶(即您目前正在與Facebook競爭)存儲255字節(jié)密碼散列,它也只能存儲255 GB的數(shù)據(jù)-相當(dāng)于一個小型SSD硬盤的大小。存儲密碼散列不太可能成為應(yīng)用程序的瓶頸。然而,在偶然的機(jī)會中,存儲空間真的由于某種原因,您可以使用PASSWORD_BCRYPT強(qiáng)迫password_hash()使用bcrypt,即使這不是默認(rèn)的。只需確保隨時了解在bcrypt中發(fā)現(xiàn)的任何漏洞,并在每次發(fā)布新PHP版本時檢查發(fā)布說明。如果默認(rèn)的算法被改變了,那么最好檢查一下。為什么并做出是否使用新算法的明智決定。


查看完整回答
反對 回復(fù) 2019-07-13
  • 3 回答
  • 0 關(guān)注
  • 1885 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號