2017-12-05 4 views
0

申し訳ありませんが、素人の質問です。私はそれに正しい答えを見つけることはできません。スウィフトのアンドロイド(java)に相当するもの:String.data to java(Swift)

"somestring".data(using:.utf8) 

の方法は?

どうもありがとう

EDIT:

私は次のメソッドのJavaバージョンを作成しています:

guard let data = "\(user):\(password)".data(using: .utf8) else { return nil } 

let credential = data.base64EncodedString(options: []) 

return (key: "Authorization", value: "Basic \(credential)") 
+2

どうすればよいですか? – AxelH

+0

私の質問が更新されました@AxelH – MetaSnarf

+1

私はまだそれが何をすべきかを理解していません...あなたはこれ以上説明できない場合、java/swiftの開発者を待つ必要があります – AxelH

答えて

0

わかりましたので、私は少し遊んでいました。それから私はOBJの-C、その文字列に思い出したNSDataのmadeupで、[]ので、私がやったことは戻って文字列に変換する前に、文字列をバイト配列に変換し、バイトのNSDataのJava等価では次のようになります。

byte[] data = (user+":"+password).getBytes("utf-8"); 
String credential = Base64.encodeToString(data,Base64.DEFAULT); 
return new KeyValue("Authorization", "Basic "+credential); 

おかげで多くのことを。これが誰にも役立つことを望みます。

+0

パスワード、キー、およびその他のセキュリティに感銘を与えるものをJavaで使用しないでください。オブジェクトは、GCが次の掃引を行うまで、不確定な時間の間、もはや使用されなくても生きています。この間、この機密データは不必要にメモリに保持され、メモリダンプに対して脆弱です。正しい方法は、データの処理が完了した時点で手動でデータをゼロにすることですが、 'String'は不変なので、不可能です。 https://stackoverflow.com/questions/8881291/why-is-char-preferred-over-string-for-passwordsを参照してください。 – Alexander