2013-11-20 21 views
3

我正在ASP.net/VB.net中創建一個PHP版本的登錄腳本。存儲用戶名和密碼的數據庫位於MSSQL中,不會更改。密碼存儲爲二進制數據。以下是VB.net中的一部分代碼,它將密碼與保存在數據庫中的密碼進行比較。我發現它是library的組成部分。ASP.net/VB.net的PHP版本登錄

我在PHP sha1中對密碼進行哈希處理後遇到問題。我不知道如何將散列字符串轉換爲可用於將其與數據庫進行比較的二進制文件。

作爲示例,MSSQL數據庫中的密碼「Test100」的值爲(解包('H *',$ binaryPassword))7397001ce5259b79c436a369b9d3a8c7bc2a85385fdec57a。我不確定如何從散列密碼獲取上面的字符串,我正在使用PHP。

下面是我在PHP到目前爲止,我所在的地方卡住。

$password = sha1(mb_convert_encoding($_POST['password'], 'utf-16le'), false); // $_POST['password'] = 'Test100' 

的輸出是8415ec8cc9287a10f81db5a77341709d304bfa92。

所以我想還有一個步驟將$ password更改爲$ binaryPassword或二進制密碼的十六進制表示。

this page,它說Byte是一個8位無符號整數,但不確定如何從PHP字符串中獲取它。

在此先感謝!

回答

0

如果您嘗試在靜態文本「Test100」上運行sh1,會發生什麼情況?

+0

如果我運行sha1('Test100')或哈希('SHA1','Test100'),我得到753bf7a73775c66e54e13e63bbf6e5091855f527。 –