Swift 使用RNCryptor解密base64编码和aes加密的字符串
我刚刚接触RNCryptor,但我得到了一个加密和base64编码的示例字符串。我正在尝试使用RNCryptor decrypt func查看纯文本中的字符串 我尝试了以下方法:Swift 使用RNCryptor解密base64编码和aes加密的字符串,swift,encryption,swift3,base64,rncryptor,Swift,Encryption,Swift3,Base64,Rncryptor,我刚刚接触RNCryptor,但我得到了一个加密和base64编码的示例字符串。我正在尝试使用RNCryptor decrypt func查看纯文本中的字符串 我尝试了以下方法: func decryptStr(_ sample : String){ let sampleBase64Decoded = sample.fromBase64Data() do { let decryptedNSData = try RNCryptor.decrypt(data: s
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编码的,并且也是加密的这一事实有任何关系
密码正确。您的Base-64数据(R79gQDNTt/0+cjU7pduqfA==
)不是RNCryptor消息(第一个字节不正确,而且太短)
AES加密没有“标准”格式。您必须将解密程序与加密程序匹配。RNCryptor实现了一种特定的格式,它实现了大多数临时解决方案中缺少的重要安全优势。如果这些数据来自服务器,您还需要在那里使用RNCryptor实现,或者重写Swift代码来实现服务器使用的任何格式(这看起来像是一种特殊的自定义格式,所以我不能说如何实现)。加密是如何完成的?请注意,RNCryptor有自己的格式,它设计用于与RNCryptor加密的数据进行互操作。我将很快与服务器人员联系,询问他是否使用RNCryptor。看来他没有!为了澄清字符串是否使用RNCryptor PHP加密,我是否能够使用RNCryptor swift对其进行解密?正确;RNCryptor是一种格式。有十几种语言的实现。