サーバーから送信されたメッセージを解読しようとしています。
サーバー側と Android クライアント側の両方で、 https ://gist.github.com/jafetsanchez/1080133 の暗号化コードを使用しています。
- サーバーは CS コードを使用してメッセージを暗号化します。
- Android クライアントは Java コードを使用してメッセージを復号化します
Swift を使用して iPhone クライアント アプリに復号化機能を追加したいと考えています。ただし、iOS ツールでそれを行う方法がわかりません。
私はCryptoSwiftを使用しています
これが私がやろうとしたことです:
let iVector: [UInt8] = [
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
]
let encryptedMessage = "encrypted_message_encrypted_message_encrypted_message_encrypted_message_"
let password = "passwordpassword"
do {
let aes = try AES(key: password, iv: String(bytes: iVector, encoding: .utf8)!, padding: .pkcs7) // aes128
let decryptedText = try aes.decrypt(encryptedMessage.bytes)
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 { }
現在、エラーが発生しています:CryptoSwift.AES.Error.dataPaddingRequired
さらに、そこに MD5 ハッシュを組み合わせる方法がわかりません。