【发布时间】:2017-01-10 11:08:31
【问题描述】:
我是 RNCryptor 的新手,但我收到了一个经过加密和 base64 编码的示例字符串。我正在尝试使用 RNCryptor 解密函数以纯文本形式查看字符串。
我尝试了以下方法:
func decryptStr(_ sample : String){
let sampleBase64Decoded = sample.fromBase64Data()
do {
let decryptedNSData = try RNCryptor.decrypt(data: sampleBase64Decoded!, withPassword: "secretPass")
let decryptedNSString = NSString(data: decryptedNSData, encoding: String.Encoding.utf8.rawValue)
print("decrypted : \(decryptedNSString)")
}
catch let error as NSError {
print("issue decrypting :\(error.localizedDescription)")
}
}
我这样称呼它:
decryptStr("R79gQDNTt/0+cjU7pduqfA==")
fromBase64 看起来像这样:
extension String {
func fromBase64() -> String? {
guard let data = Data(base64Encoded: self, options: NSData.Base64DecodingOptions(rawValue: 0)) else {
return nil
}
return String(data: data, encoding: String.Encoding.utf8)!
}
}
我收到错误 connect.RNCryptor.Error 错误 2。为什么会这样?这是否与字符串既是 base 64 编码又是加密的事实有任何关系?
密码正确。
【问题讨论】:
-
加密是如何完成的?请注意,RNCryptor 有自己的格式,旨在与 RNCryptor 加密的数据进行互操作。
标签: swift encryption swift3 base64 rncryptor