3

URL で渡すデータを暗号化するために CryptoSwift を使用しています。これを行うには、NSURL 要求に連結するために、データの一部のデータ型を文字列にする必要があります。データを暗号化した後、バイト単位で出力されます。バイトを意味のない文字列にキャストして、PHP スクリプトが復号化できる URL を渡すにはどうすればよいですか?

UInt8 に暗号化することはできますが、URL を介して PHP スクリプトに渡すことはできないと思うので、文字列にする必要があります。

コード:

let string = "hello"
let input: [UInt8] = Array(string.utf8)
let key: [UInt8] = [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
let iv: [UInt8] = AES.randomIV(AES.blockSize)
do {
    let encrypted: [UInt8] = try AES(key: key, iv: iv, blockMode: .CBC).encrypt(input, padding: PKCS7())
    print("Encrypted bytes: \(encrypted)")
    let str = String(bytes: encrypted, encoding: NSUTF8StringEncoding)
    print("String of encrypted data: \(str)") // prints a nil value
} catch AES.Error.BlockSizeExceeded {
    print("Block size exceeded")
} catch {
    print("Error encrypting or decrypting data")
}

助けてくれてどうもありがとう、

4

1 に答える 1