2014-06-05 64 views
0

我有下面的代碼創建在PHP中的加密:從系統中,我試圖連接到美國PHP變量加密

$password = "helloworld"; 
$passwordupper = strtoupper($password); 
$passwordencode = mb_convert_encoding($passwordupper, 'UTF-16LE'); 
$passwordsha1 = hash("SHA1", $passwordencode); 
$passwordbase64 = base64_encode($passwordsha1); 

的說明,我有:

編碼過程對於密碼是:首先轉換爲大寫,然後將Unicode編碼爲little-endian UTF 16,然後使用SHA1對base64進行編碼。

我想我在我的代碼中做錯了什麼。有任何想法嗎?

+2

它工作與否? – AbraCadaver

+2

sha1散列可以是原始二進制文件,也可以是以base64編碼的字符串開始。例如'$ raw = sha1($ string,true)'v.s. '$ encoded = sha1($ string)'。你最好嘗試兩種變體,因爲你可能是雙base64編碼。 –

+0

完美的馬克B,做到了! – NCoder

回答

1

回答由Marc乙上面評論解決:

SHA1哈希可以是原始的二進制或base64編碼字符串 開始。例如$ raw = sha1($ string,true)v.s. $ encoded = sha1($ string)。你最好試試兩種變體,因爲你可能是 雙基64編碼。