Как я могу расшифровать NSData с помощью RNCryptor (AES128CBC)? я уже пытался понять документацию: https://github.com/RNCryptor/RNCryptor-Spec/blob/master/draft-RNCryptor-Spec-v4.0.mdRNCryptor: AES128CBC дешифрование в Swift
Edit:
class Decription{
func AES128(message: String, key: String, iv: String){
let keyData: NSData! = (key as NSString).dataUsingEncoding(NSUTF8StringEncoding) as NSData!
let ivData: NSData! = (iv as NSString).dataUsingEncoding(NSUTF8StringEncoding) as NSData!
let data: NSData! = (message as NSString).dataUsingEncoding(NSUTF8StringEncoding) as NSData!
let cryptData = NSMutableData(length: Int(data.length) + kCCBlockSizeAES128)!
let keyLength = size_t(kCCKeySizeAES256)
let operation: CCOperation = UInt32(kCCDecrypt)
let algoritm: CCAlgorithm = UInt32(kCCAlgorithmAES128)
let options: CCOptions = UInt32(kCCOptionECBMode + kCCOptionPKCS7Padding)
var numBytesEncrypted :size_t = 0
let cryptStatus = CCCrypt(
operation,
algoritm,
options,
keyData.bytes,
keyLength,
ivData.bytes,
data.bytes, data.length,
cryptData.mutableBytes,
cryptData.length,
&numBytesEncrypted
)
if UInt32(cryptStatus) == UInt32(kCCSuccess) {
cryptData.length = Int(numBytesEncrypted)
print("Decrypted Result = \(NSString(data: cryptData, encoding: NSUTF8StringEncoding))")
} else {
print("Error: \(cryptStatus)")
}
}
}
Я изменил код сниппета @zaph связанный с. Вы можете увидеть результат выше.
NSString(data: cryptData, encoding: NSUTF8StringEncoding)
результаты nil
. В чем проблема?
Проблема в том, что не все данные и практически никакие зашифрованные данные могут быть закодированы как UTF-8 или большинство кодировок. Если вам нужен «String» для вывода, используйте кодировку Base64. Для кодировки Base64 используйте: 'func base64EncodedStringWithOptions (_ options: NSDataBase64EncodingOptions) -> String'. – zaph
Результат должен быть UTF-8, это строка JSON. –
Base64 состоит из символов UTF-8, вы помещаете закодированную в Base64 строку в JSON. Другим вариантом является шестнадцатеричное кодирование зашифрованных данных и размещение этой строки в JSON, но в наши дни это менее распространено. – zaph