gpt4 book ai didi

swift - 使用 RNCryptor 解密 base64 编码和 aes 加密的字符串

转载 作者:搜寻专家 更新时间:2023-11-01 06:36:01 63 4
gpt4 key购买 nike

我是 RNCryptor 的新手,但我得到了一个加密和 base64 编码的示例字符串。我正在尝试使用 RNCryptor decrypt func 以纯文本形式查看字符串。

我尝试了以下方法:

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 error 2。为什么会这样?它是否与字符串既是 base 64 编码又是加密的事实有任何关系?

密码正确

最佳答案

您的 Base-64 数据 (R79gQDNTt/0+cjU7pduqfA==) 不是 RNCryptor 消息(第一个字节不正确,而且太短)。

AES 加密没有“标准”格式。您必须将解密器与加密器相匹配。 RNCryptor 实现了一种特定格式,该格式实现了大多数临时解决方案中缺少的重要安全优势。如果此数据来自服务器,您还需要在那里使用 RNCryptor 实现,或者重写您的 Swift 代码以实现您的服务器使用的任何格式(这看起来像是一种临时自定义格式,所以我不能说如何实现)。

关于swift - 使用 RNCryptor 解密 base64 编码和 aes 加密的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41567361/

63 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com