{
"order_id": 5,
"no": "19000038",
"id": 10,
"name": "John Doe"
}
我使用在线AES加密网站对上述数据进行加密,该网站是: https://www.devglan.com/online-tools/aes-encryption-decryption
使用CBC模式,256键大小和Base64输出文本格式。我通过以下链接通过@ / backslash-f复制了Playground: AES encryption in swift
以下是我编写解密加密数据的方式:
let stringData = Data(base64Encoded: stringValue, options: .ignoreUnknownCharacters)
do {
let aes = try AES(keyString: key)
let decryptedData: String = try aes.decrypt(stringData!)
print("String decrypted:\t\t\t\(decryptedData)")
}
catch {
print("Something went wrong: \(error)")
}
数据已成功解密,但缺少字符。以下是解密后的数据(如代码中所示):
String decrypted: ,
"order_no": "19000038",
"id": 10,
"name": "John Doe"
}
如您所见,第一个大括号,直到缺少“ order_id”:5 。有谁知道为什么会这样以及如何解决这个问题?
答案 0 :(得分:0)
找出问题所在。这是填充问题。 CommonCrypto默认将填充设置为pkcs7,我们无法对其进行更改。然后,我使用CryptoSwift库并将padding更改为noPadding,然后它就像超级按钮一样工作!