亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

我如何解析這個非格式化的 sha 密鑰響應列表?

我如何解析這個非格式化的 sha 密鑰響應列表?

PHP
慕森王 2022-12-23 13:04:16
我正在調用 haveibeenpwned api 來搜索數據庫中存在的密碼 sha1 值的前綴。(表單提交綁定到對 php 腳本的 ajax 調用)。響應是 sha1 中所有泄露的密碼,它們的前綴與我的密碼相同,以及它們的出現次數。響應如下所示,沒有括號或引號。您可以在此處查看示例調用。0084E2D508D46A4D5FDB509625EE9BE99CE:10159EB03D329C98DD0DF294CD5B9CA52854:202662E0A92868C8B65DBFC8764C9A54B646:203BBAEF4539EA59F8B0784E64323A3B8E9D:204B631308CABEB3038D04B0F114D699A022:60556B126AA9AF70D83EA0DD7FB6865A6338:105B2FBDE67E25293A020855683A12A8AEB6:205CCD00B8F9010E60CF6DA4E1E637EF7664:1069836ADDB456322375224A6D2374D3309D:107402605745C387BEF36C2BC54619EC4573:207FB36570851A136481E6B8138AC4834484:20829F51F120B5F8B99D7AF00602053556BF:2089BACBDF1C6214D69F1A3BDC20459D57EE:308EB1AA8F3C15FC70D6CD4B1F42C9462671:109EEFDDA1D7253593138B66DEA14911B7FA:60A1359437D05D0A06CA5C840A297A49EE3E:10A84D4E8D914D7A782A81838AD57142B352:10A9DAA8398558A5448C327E9621446955F1:20BA107CFAC7EE7222F7E23E05D2984B38DC:1我可以在 jquery 或 php 中搜索我的密碼出現率。在 jquery 中,我沒有運氣嘗試將響應轉換為字符串并使用 response.includes(my_password_sha)。此外,在 php 中設置 content-type: json 似乎不會破壞服務器。      curl_setopt($ch, CURLOPT_HTTPHEADER, array(         'Content-Type: application/json',     );這是我一直在努力工作的 javascript:            success: function(response) {                 console.log(response);                console.log("pw checker responded");                                var resp_str = response.toString();                resp_str = resp_str.substring(40)                var pw_sha = response.toString().substring(0,40);                pw_sha = pw_sha.substring(7,35);                if(resp_str.includes(pw_sha))                { //fails to work                    console.log("password compromised");                }            },
查看完整描述

1 回答

?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

您從服務器獲得的響應是純文本格式,返回的數據是表單中的一系列行


ppp : nnn


其中ppp是 40 個字符長的 sha1 散列密碼,nnn是發生次數。


您可以輕松地將響應轉換為 PHP 中的關聯數組,將數組轉換為 JSON 并將 JSON 編碼數據發送回前端 JavaScript:


$response = explode( "\n", $response );

$out = [];

foreach( $response as $r )

{

    $r = explode( ":", $r );

    $out[] = [ 'sha1' => $r[0], 'count' => $r[1] ];

}

$out = json_encode( $out );

echo $out;

JavaScript AJAXsuccess()回調將接收一個可以輕松檢查的解碼對象:


success: function(response) {

    var found,

        n,

        i;


    found = false;

    n = response.length;

    for( i = 0; i < n; i++ )

    {

        if( pw_sha1_to_check === response[i].sha1 )

        {

            found = true;

            break;

        }

    }


    if( found )

    {

        // `pw_sha1_to_check` was found in the list received as response

    }

確保在使用 jQuery 進行 AJAX 調用時指定需要 JSON 響應:


 $.ajax( {

     dataType: 'json',

     // ...


查看完整回答
反對 回復 2022-12-23
  • 1 回答
  • 0 關注
  • 129 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號