Нужна помощь в преобразовании этого хэш-кода PHP sha256 в swift (iOS)

Мне нужно преобразовать этот кусок PHP-кода в swift для создания хэшей, я использую хеш-код в PHP для хеширования 2 строк с помощью SHA256, и я хотел бы сделать это быстро, есть идеи?
SELF :: SECRET является секретным ключом, а SELF :: HASH_PATTERN является моим шаблоном и выглядит примерно так: «00101010011100001010»

public function hash($first, $second) {
// Append the secret to the values.
$first = self::SECRET . $first;
$second = $second . self::SECRET;

// Hash the values.
$hash = hash_init('sha256');
hash_update($hash, $first);
$hash1 = hash_final($hash);
$hash = hash_init('sha256');
hash_update($hash, $second);
$hash2 = hash_final($hash);

// Create a new hash with pieces of the two we just made.
$result = '';
for ($i = 0; $i < strlen(self::HASH_PATTERN); $i++) {
$result .= substr(self::HASH_PATTERN, $i, 1) ? $hash2[$i] : $hash1[$i];
}

return $result;
}

Спасибо!

ОБНОВИТЬ:
Это та часть, которую я не могу понять:

    $hash = hash_init('sha256');
hash_update($hash, $first);
$hash1 = hash_final($hash);

ОБНОВИТЬ:

После нескольких часов исследований и написания кода я наконец понял это.
Это код, который я написал, возможно, не самый лучший, но он работает 🙂
Я использовал небольшой класс из github для генерации строк SHA256 в swift под названием NSHash

func create_token(first:String, second:String) -> String {

var newFirst = constants.secret + first as NSString
var newSecond = second + constants.secret as NSString

var hash1 = newFirst.SHA256()
var hash2 = newSecond.SHA256()

var result = ""
for var i = 0; i < countElements(constants.hash_pattern); i++ {

var character = "\(constants.hash_pattern[i])" as String
var number:Int = character.toInt()!

if number == 1 {

result = "\(result)\(hash2[i])"

}else {
result = "\(result)\(hash1[i])"
}

}

return result
}

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]