gpt4 book ai didi

ios - 为什么 Swift5 上的 CryptoSwift 文本加密失败?

转载 作者:行者123 更新时间:2023-11-29 05:28:01 33 4
gpt4 key购买 nike

我尝试加密密码时出错。我找不到加密失败的原因。有什么问题吗?

加密货币

import CryptoSwift

struct Crypto {

let keyData : String!
let ivData : String!

init(){
keyData = "Stringdata"
ivData = "Stringdata"
}

func encryptor(_ text: String) {
do {
let aes = try AES(key: keyData, iv: ivData)
let chiperText = try aes.encrypt(text.bytes).toBase64() // get Error
Log.Debug(chiperText)
} catch {
Log.Error(error)
}
}

func decryptor(_ hexString : String) -> String {
var decryptText : String = ""
do {
let aes = try AES(key: keyData, iv: ivData)
let e64_data = Data(base64Encoded: hexString) ?? Data()
let decryptData = try aes.decrypt(e64_data.bytes)
decryptText = String(bytes: decryptData, encoding: .utf8)!
Log.Debug(decryptText)
} catch {
Log.Error(error)
}
return decryptText
}

}

使用

do {
try globalUrl.post(url: url, dict, encoding: .utf8, completionHandler: { data, response, error in
do {
...
Crypto.encryptor(self.PasswordField.text!)
...
} catch {
Log.Error(error)
}
} catch {
Log.Error(error)
}

运行的地方就是通过API接收返回值的地方运行

let chiperText = try aes.encrypt(text.bytes).toBase64()

这就是错误发生的地方。我不知道为什么,因为我已经报告了如何使用 Github。


编辑


我将尝试另一种加密方式,但我不知道如何解码。

    func encryptor(_ text: String) {
do {
let aes = try AES(key: keyData, iv: ivData) // aes128
let ciphertext = try aes.encrypt(Array(text.utf8))
Log.Debug(ciphertext)
} catch {
Log.Error(error)
}
}

func decryptor(_ dataArray : Array<UInt8>) -> String {
var decryptText : String = ""
do {
let aes = try AES(key: keyData, iv: ivData) // aes128
let ciphertext = try aes.decrypt(dataArray)
decryptText = ciphertext // Cannot assign value of type '[UInt8]' to type 'String'
Log.Debug(decryptText)
} catch {
Log.Error(error)
}
return decryptText
}

decryptText = ciphertext // Cannot assign value of type '[UInt8]' to type 'String'

是我的用法错误吗?无论我如何努力寻找解决方案,我都找不到它。

提前致谢

最佳答案

这个错误发生在一个简单的地方。 ivDatakeyData 的字节值不是 16 字节。如果它们的值不是 16 字节,则会发生错误。

关于ios - 为什么 Swift5 上的 CryptoSwift 文本加密失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57967353/

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