В настоящее время применяя алгоритм PBKDF, результаты для Android и iOS различны.
Я подтвердил, что значения пароля и соли, которые являются значениями, перед применением алгоритма, одинаковы как для Hexstring, так и для Bytearray. /> В настоящее время я подозреваю, что значения изменяются значениями, которые разбиты при изменении с Bytearray -> String -> формат Chararray в Android. Тем не менее, я не знаю, как поместить те же значения в функцию и увидеть результаты. Кто -нибудь столкнулся с той же проблемой? {< /p>
let passwordHashData = sha256(string: password)
let saltHashData = sha256(string: salt)
var derivedKey = [UInt8](repeating: 0, count: digestLength)
let result = passwordHashData.withUnsafeBytes { passwordPointer in
saltHashData.withUnsafeBytes { saltPointer in
CCKeyDerivationPBKDF(
CCPBKDFAlgorithm(kCCPBKDF2),
passwordPointer.baseAddress,
passwordHashData.count,
saltPointer.baseAddress,
saltHashData.count,
CCPseudoRandomAlgorithm(kCCPRFHmacAlgSHA256),
UInt32(iterationCount),
&derivedKey,
digestLength
)
}
}
< /code>
#android
pbekeyspec (char [] пароль, byte [] salt, int iteator -count, int keylength) < /p>
В Swift я попытался изменить Bytearray -> string -> chararray и затем вставка значения. Кроме того, когда я выполнил ту же логику, используя библиотеку CryptoSwift, произошло такое же явление.
Подробнее здесь: https://stackoverflow.com/questions/794 ... nd-android