如何對swift XCODE上的字符串進行AES 128加密並將其作爲POST發送給服務器?... 我是XCODE的新手,正在學習對字符串數據進行加密並希望發送到HTTP服務器。這是一個基本的iOS應用程序發送設備的經度和緯度。如何在swift XCODE上對字符串進行AES 128加密並將其作爲POST發送到服務器?
回答
添加#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
}
將其發送到服務器,基於64位編碼的結果,併發送。然後在服務器端,base64解碼結果並解密。基於從實例
這是Swift語言還是Objective C?因爲我需要SWIFT幫助 –
@MuhammadJamaal有什麼問題呢?這是一個笑話嗎? – Brandon
對不起,如果你這麼想。我是新手,在網上學習的同時,我總是感到困惑,因爲有些網站編寫的代碼沒有提及它的Swift或Obj C.只是想要確認。 –
:https://github.com/krzyzanowskim/CryptoSwift
要使用加密字符串CryptoSwift:
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
}
要發送的值的服務器查詢: HTTP Request in Swift with POST method或數千個帖子中的任何一個如何將數據發送到服務器。
我試過了CryptoSwift,但是在構建時,它顯示了減少Cryptoswift文件中的32個錯誤 –
您可能使用了當前XCode/Swift版本不支持的CryptoSwift版本。就我所知,支持swift 3的最後一個CryptoSwift版本是0.6.9。你使用哪種Xcode版本? –
我正在使用Xcode 9.0(9A235)。 –
- 1. 如何在swift中創建json字符串並將其發送到服務器
- 2. 將C#AES加密字符串發送到CyptoPP C++程序進行解密
- 3. 如何加密字符串並將其發送到數據庫
- 4. 將字符串發送到服務器之前進行壓縮
- 5. 如何將字符串寫入txt文件並將其發送到服務器
- 6. 將字符串發送到服務器
- 7. 如何發送文本到服務器並對其進行操作
- 8. 如何將NSData作爲密鑰發送,併發送給CCCrypt
- 9. 如何使用AES加密128位字符串創建包含128 0的
- 10. Android AES 128加密
- 11. AES-128加密/解密
- 12. 如何使用OpenSSL.Net C#包裝器對AES字符串進行加密?
- 13. Objective-C的解密AES 128 CBC十六進制字符串
- 14. 發送字符串到php服務器
- 15. AES 128加密在Android
- 16. AES加密字符串IV
- 17. 使用CFB 128位AES加密對數據進行加密/解密的代碼
- 18. 如何將字符串發送到Http服務器(Java)
- 19. 如何將base64字符串發送到服務器使用volley
- 20. 如何使用Java將字符串發送到服務器?
- 21. 通過post方法發送json字符串到服務器
- 22. 如何發送創建一個JSON字符串,並將其從服務器發送到android?
- 23. 將字符串轉換爲圖像並將其發送到WhatsApp
- 24. 如何在AES加密中加密/解密多個字符串?
- 25. 如何將POST請求發送到REST Web服務併發送JSON?
- 26. XCode將圖像發送到服務器
- 27. 發送POST到服務器不工作
- 28. 對於iPhone HTTP流的AES 128加密
- 29. 如何發送JSON字符串到服務器端在Android中
- 30. 通過AsyncHttpClient將JSON作爲POST請求發送到服務器
我使用https://github.com/krzyzanowskim/CryptoSwift。 – mrfour