AMcoder - javascript, python, java, html, php, sql

Արդյո՞ք ես իսկապես պետք է հաճախակի բախումներ ստանամ bcrypt-ի հետ:

Երկու պատահական տողեր հեշավորելիս ես միջինում ստանում եմ 2 բախում 100000-ից: Սա սպասվո՞ւմ է։

Այս բոլոր տողերը արտադրում են նույն հեշը (օգտագործելով ցանկացած աղ և ցանկացած աշխատանքային գործոն).

base64_decode('/g=');
base64_decode('/gB/==');
base64_decode('/gBQyVY/0dzg');
base64_decode('/gBQyoK71jVY/JZP0dzg=');
base64_decode('/gBQyoK71jVY/J2ea4q9mAZP0dzg==');
base64_decode('/gBQyoK71jVY/J7QuBNJuFdxyf2eTBCs42chkx6ZvpJYszpUcJk8/HXa4q9mAZP0dzg=');

Եվ սրանք ընդամենը օրինակներ են, փորձեք կենտրոնից ավելացնել և հեռացնել նիշերը, դուք կստանաք ավելի շատ համընկնումներ: Ահա php կոդը, որն օգտագործվում է դրանք գտնելու համար.

set_time_limit(60*10);
$salt = '$2a$04$usesomesillystringforsalt$';
for($i=0; $i < 100000; $i++){
    $one = openssl_random_pseudo_bytes(rand(1,111));
    $two = openssl_random_pseudo_bytes(rand(1,111));
    if(crypt($one, $salt)==crypt($two, $salt)){
        echo base64_encode($one).'|'.base64_encode($two)."\n";
    }
}

  • Այս բախումները հատուկ են php-ին, որն օգտագործում է bcrypt-ի բաց պատի իրականացում, կարծում եմ: jBCrypt-ն այս տվյալների համար ինչ-ինչ պատճառներով արտադրում է տարբեր հեշեր (տարբեր php-ից և միմյանցից տարբեր): 19.02.2012
  • Այս տողը տարբեր կերպ է կոդավորված bcrypt-ով php-ում և java-ում՝ þ 19.02.2012
  • Համոզվեք, որ աղը ճիշտ ձևով կոդավորված է. PHP-ն այնտեղ [./0-9A-Za-z]-ում ուզում է 22 նիշ, և դուք փոխանցում եք 25 նիշ: Կարո՞ղ է դա լինել պատճառը: 19.02.2012
  • @PaŭloEbermann Ոչ, աղը այստեղ նշանակություն չունի (այն ինքնաբերաբար կտրվում է), ես փորձել եմ օգտագործել նաև 22 թվանշան: 19.02.2012
  • Հնարավո՞ր է Bcrypt-ի կրկնօրինակը կոտրված PHP-ում: Կարող է հեշտությամբ ներառել ցանկացած վնասակար ծանրաբեռնվածություն 20.02.2012

Պատասխանները:


1

Ի վերջո, PHP-ն լավ չի խաղում զրոյական բայթ ունեցող տողերի հետ:
PHP crypt ֆունկցիան ոչ երկուական անվտանգ է:

19.02.2012
Նոր նյութեր

Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..