CryptoSWIFT-表达式类型在没有更多上下文的情况下是不明确的

CryptoSWIFT-表达式类型在没有更多上下文的情况下是不明确的,swift,macos,swift4,cryptoswift,Swift,Macos,Swift4,Cryptoswift,Im使用cryptoswift解密字符串 let decrypted2 = try AES(key: "35%6HyBW", iv: "erewf^%", blockMode: .CBC, padding: .pkcs7).decrypt(text2) 但我一直发现,表达式的类型是不明确的,没有更多的上下文复杂的时间错误这里有两个输入错误 #1、您使用的原型不存在。Blockmode采用CBC(iv:)参数 #2,您需要将字符串转换为字符串 因此,请使用: let aes = try AES

Im使用
cryptoswift
解密字符串

let decrypted2 =  try AES(key: "35%6HyBW", iv: "erewf^%", blockMode: .CBC, padding: .pkcs7).decrypt(text2)

但我一直发现,表达式的类型是不明确的,没有更多的上下文复杂的时间错误

这里有两个输入错误

#1、您使用的原型不存在。Blockmode采用
CBC(iv:)
参数

#2,您需要将字符串转换为字符串

因此,请使用:

let aes = try AES(key: [UInt8]("35%6HyBW".utf8), blockMode: CBC(iv: [UInt8]("erewf^%".utf8)), padding: .pkcs7)

谢谢你的回复。我刚刚了解到swift.decrypted2是一个AES对象。我如何从中获得解密的字符串。我只是稍微修改了我的答案。您正在创建一个AES对象(用于加密和解密)。因此,缺少的是您需要加密数据/字符串,并将其传递给AES
.decrypt
函数。看看CryptoSwift项目的
.playway
,您会在“ChaChat20”标题下看到一个很好的、不言自明的示例。感谢更新,我已经成功地使用以下代码对字符串进行了加密“let aes1=try AES(key:“passwordpassword”,iv:“drowsap”)let sdata=try aes1.encrypt(Array(akey.utf8)“但问题是我不能使用Mac系统序列号作为密钥,似乎AES需要特定的密钥长度,我不能更改加密密钥,因为旧的实现使用这种方法。我试图更改这一点,因为我得到了解密字符串的
null
值。在某些情况下,我如何用密码复制相同的内容请问一个单独的问题(因为这是一个单独的问题),我也会尝试回答这个问题。