文字列をmd5に変換するプロジェクトにCryptoSwift.frameworkがあります。結果のハッシュ・ストリングは、サーバー側で許可するために使用されます。したがって、このサーバーに送信するすべての要求はこの関数を使用しています。md5は無効な結果を返しますか?
私は
didRegisterForRemoteNotificationsWithDeviceTokenメソッドからdeviceTokenオブジェクトを受け取ります。それから、 "toHexString"関数を使って文字列に変換します。いくつかのカスタム処理を追加することAlamofireリクエストメソッドの周りに単純なラッパーであり、私何気なくAPIHelperに渡し(サーバ側との相互作用のための私のカスタムクラス)
APIHelper.register(deviceToken: deviceToken.toHexString())
:
class func register(deviceToken: String)
{
request(.get, resource: FWWebRequests.registerToken, parameters: ["token": deviceToken]) { (object, result) in
print(object as Any)
print(result)
}
}
と結果サーバーから常に "無効なハッシュ文字列"です。しかし、同じハッシングを使用する他のメソッドは正常に動作します。だから、疑問がある - これはハッシング方法の問題かもしれない。もしそうでなければ、何ができますか?
おそらくエンコードエラーです。しかし、あなたは私たちに利点を持っている、あなたがデバッグすることができます、私たちはできませんし、私はあなたの質問にそれに答えるのに十分な情報があるかどうかはわかりません。 –
ストリングをMD5に直接渡すことはできません。最初にエンコードする必要があります。 CryptoSwiftがあなたの認証に使用するはずのエンコーディングを使用していると確信していますか? – Codo
MD5がなぜ問題だと思いますか?間違った可能性のある承認(例えば、ハッシュ・ストリングの構築)には多くのステップが含まれています。関連するすべてのコードを表示します。 – Codo