如何对swift XCODE上的string进行AES 128encryption并将其作为POST发送给服务器?

如何在swift XCODE上对string进行AES 128encryption,并将其作为POST发送到服务器?…我是XCODE的新手,正在学习对string数据进行encryption并希望发送到HTTP服务器。 这是一个基本的iOS应用程序发送设备的经度和纬度。

#import <CommonCrypto/CommonCryptor.h>添加到桥接头中,然后使用以下命令:

 func encryptAES128(data: NSData, key: NSString, iv: NSString) -> NSData? { let keyPtr = UnsafeMutablePointer<CChar>.allocate(capacity: Int(kCCKeySizeAES128) + 1) defer { keyPtr.deallocate(capacity: Int(kCCKeySizeAES128) + 1) } let ivPtr = iv.utf8String bzero(keyPtr, 0) key.getCString(keyPtr, maxLength: Int(kCCKeySizeAES128) + 1, encoding: String.Encoding.utf8.rawValue) let bufferSize = data.length + kCCBlockSizeAES128 let buffer = UnsafeMutableRawPointer.allocate(bytes: bufferSize, alignedTo: MemoryLayout.alignment(ofValue: CChar.self)) var numBytesEncrypted = 0 let cryptStatus = CCCrypt(CCOperation(kCCEncrypt), CCAlgorithm(kCCAlgorithmAES128), CCOptions(kCCOptionPKCS7Padding), keyPtr, kCCKeySizeAES128, ivPtr, data.bytes, data.length, buffer, bufferSize, &numBytesEncrypted) if cryptStatus == kCCSuccess { return NSData(bytesNoCopy: buffer, length: numBytesEncrypted, freeWhenDone: true) } buffer.deallocate(bytes: bufferSize, alignedTo: MemoryLayout.alignment(ofValue: CChar.self)) return nil } 

要发送到服务器,base64编码结果,并发送。 然后在服务器端,base64解码结果并解密。

基于以下示例: https : //github.com/krzyzanowskim/CryptoSwift

使用CryptoSwiftencryptionstring:

 func encrypt(text: String) -> String? { if let aes = try? AES(key: "passwordpassword", iv: "drowssapdrowssap"), let encrypted = try? aes.encrypt(Array(text.utf8)) { return encrypted.toHexString() } return nil } 

解密:

 func decrypt(hexString: String) -> String? { if let aes = try? AES(key: "passwordpassword", iv: "drowssapdrowssap"), let decrypted = try? aes.decrypt(Array<UInt8>(hex: hexString)) { return String(data: Data(bytes: decrypted), encoding: .utf8) } return nil } 

将值发送到服务器查找: 使用POST方法的Swift中的HTTP请求或数千个post中的任何一个如何将数据发送到服务器。