IOS Расшифровать строку с CryptoSwift - PullRequest
0 голосов
/ 17 января 2020

Я хочу расшифровать строку в base64, и когда я создаю строку из расшифрованных данных, я получаю ноль в моей строке.

Вот мой код:

private func xd(url: String?) -> URL? {
    guard let enryptedData = Data(base64Encoded: url ?? "") else { return nil }
    let password: Array<UInt8> = "TW9iaWxueUNhdGVyaW5nRGVlcGxpbmtTZWNyZXQ=".bytes
    let salt: Array<UInt8> = "ItyuwaSolSaltSalzToteSoSoutAsin".bytes
    let iv = Data(count: 16)
    Logger.debug("IV: \(iv)")
    do {
        let data = Padding.pkcs5.add(to: enryptedData.bytes, blockSize: AES.blockSize)
        let key = try PKCS5.PBKDF2(password: password,
                                   salt: salt,
                                   keyLength: 32,
                                   variant: .sha256).calculate()
        let decryptedData = try AES(key: key, blockMode: CBC(iv: iv.bytes), padding: .pkcs5)
            .decrypt(data)
        let string = String(bytes: decryptedData, encoding: .utf8)
        Logger.debug("Decrypted string: \(string ?? "")")

        return URL(string: string ?? "")
    } catch {
        Logger.info("\(error)")
        return nil
    }
...