2017-04-26 19 views
1
let originalMsg:String = "THIS IS A TEST" 
let sessionData = originalMsg.dataUsingEncoding(NSUTF8StringEncoding)   
var encryptedPublic:NSData = RNCryptor.encryptData(sessionData!, password: ProjectConstants.MessageEncrypt.PUBLIC_KEY) 
var base64EncodedPublic:NSData = encryptedPublic.base64EncodedDataWithOptions([]) 
var encryptedPrivate = RNCryptor.encryptData(base64EncodedPublic, password: privateKey) 
var base64EncodedString:String = encryptedPrivate.base64EncodedStringWithOptions([]) 

元の入力を得るために、base64EncodedStringをどのように復号化しますか?私はbase64のデコードに苦労していると思う。デコードbase64 +解読 - スウィフト

答えて

2

これは、あなたがUTF-8は、スウィフト2でbase64文字列からNSStringをエンコード取得する方法である:

let decodedData = NSData(base64EncodedString: base64EncodedString, 
         options: NSDataBase64DecodingOptions.fromRaw(0)!) 
let decodedString = NSString(data: decodedData, encoding: NSUTF8StringEncoding) 

しかし、あなたは復号化したい場合は、あなたがデータをちょうどよいでしょう:

do { 
    let decodedData = NSData(base64EncodedString: base64EncodedString, 
         options: NSDataBase64DecodingOptions.fromRaw(0)!) 
    let decryptedPrivate = RNDecryptor.decryptData(decodedData, password: privateKey) 
    let decodedPrivate = NSData(base64EncodedData: decryptedPrivate, 
          options: NSDataBase64DecodingOptions.fromRaw(0)!) 
    let decryptedPublic = RNDecryptor.decryptData(decodedPrivate, password: ProjectConstants.MessageEncrypt.PUBLIC_KEY) 
    let decryptedMessage = NSString(data: decryptedPublic, encoding: NSUTF8StringEncoding) as String 
} catch { 
    // handle decryption errors... 
} 
関連する問題