sha512 в php и sha512 на python не совпадают
Есть 2 кода, на Python и на php По идеи они должны выдавать одинаковый результат, но на практике нет.
python:
def hashpass(passsw, salt):
alphabet = string.digits + string.ascii_lowercase
for alpha in alphabet:
print("','".join(alphabet))
m = hashlib.sha512()
m.update(salt.encode('utf-8'))
m.update(passsw.encode('utf-8'))
byte = m.digest()
len_byte = len(byte)
res = ''
for b in byte:
print(b)
encoded = alphabet[b % 32]
res += encoded
return res`
php:
function hashPass($hash, $salt) {
$masiv = ['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'];
$ar = array_values(unpack('C*', hash_hmac('sha512', $hash, $salt, true)));
echoh ($ar);
$size = strlen($ar);
$str = '';
foreach($ar as $byte) {
echoh($byte.'-'.$masiv[$byte % 32]);
$str .= $masiv[$byte % 32];
}
return $str;
}
Везде я сую одинаковый пароль и соль.