我一直在尝试使用Swift
给出的密码解码 AES 128位加密文本。我尝试了很多像AES128
这样的库以及其他一些库。但是在所有内容中,只能解密使用相同代码加密的文本。但在这里我有一个我需要解密的文本和密码。密文是 AES 128位。任何人都可以指定我的任何库或方法来解密我在Swift中的AES 128位Cypher文本。
提前致谢:)
在下面的代码中,我得到了一个线程; 线程1:致命错误:在解包可选值时意外发现nil
正如您所看到的,我有一个已加密的文本和密码,我想从中获取实际的解密文本...
我在WebCrypto库的自述文件中添加了两个文件WebCrypto.swift和WebCrypto.js
let crypto = WebCrypto()
let password = "Q@*Amn!"
let encrypted = "NilZ9gpu1M3KUnEyN9scllyV3aN7NSSPJXwbOy7qTOk="
let enData = encrypted.data(using: .utf8)
self.crypto.decrypt(data: enData!, password: password, callback{(decrypted: Data?, error: Error?) in
print(String(data: decrypted!, encoding: .utf8)!)
})
答案 0 :(得分:0)
您可以通过array change detection page这种方式执行AES encryption
和decryption
,
do {
let tmpString = "This is test string."
let aes = try AES(key: "password12345678", iv: "drowssapdrowssap") // aes128
let ciphertext = try aes.encrypt(Array(tmpString.utf8))
let decryptedText = try aes.decrypt(ciphertext)
let data = Data(bytes: decryptedText, count: decryptedText.count)
if let string = String(data: data, encoding: .utf8) {
print(string)
} else {
print("not a valid UTF-8 sequence")
}
} catch { }
此处print(string)
将为This is test string.
<强>更新强>
您可以使用此CryptoSwift
执行此操作let crypto = WebCrypto()
let input = Data("This is a string".utf8)
let password = "password123"
crypto.encrypt(data: input, password: password, callback: {(encrypted: Data?, error: Error?) in
print(encrypted!) //encrypted data
crypto.decrypt(data: encrypted!, password: password, callback: {(decrypted: Data?, error: Error?) in
print(String(data: decrypted!, encoding: .utf8)!)
})
})
希望对你有所帮助。