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")
}
助けてくれてどうもありがとう、