IOS Decrypt string with CryptoSwift

441 Views Asked by At

I want to decrypt string in base64 and when i create string from decrypted data i get nil in my string.

Here's my code:

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
    }
0

There are 0 best solutions below