post通信をしたいのでString にしたいのですが、何かいい方法はありますでしょうか?
javax では以下のリンクの方法でいけるようなのですが、android で javax は使えるのでしょうか?
http://d.hatena.ne.jp/kenpoco/20080717/1216291915
以下にソースを添付致します。
どうぞよろしくお願い申し上げます。
-------------------------------------------------------------------------------------------------
public static String GetEncryptedString(){
String strAndroidID = "0123456789012345"; // <-128bitのキー
byte[] keyBytes = strAndroidID.getBytes(); // バイト列に変換
SecretKeySpec sKey = new SecretKeySpec(keyBytes, "AES");
String strData = "暗号化するメッセージ";
Cipher cipher1;
try {
cipher1 = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher1.init(Cipher.ENCRYPT_MODE, sKey);
byte[] aaa = cipher1.doFinal(strData.getBytes());
String str1 = new String(aaa);
byte[] bbb = str1.getBytes();
String str2 =
android.util.Base64.encodeToString(cipher1.doFinal(strData.getBytes()),
android.util.Base64.URL_SAFE);
return str2;
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
}/* catch (UnsupportedEncodingException e) {
e.printStackTrace();
}*/ catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
}
return null;
}
これはつかえませんか?
2011年12月2日1:47 ロウキル <rou...@gmail.com>:
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
--
--
Toru Tashiro
toru...@gmail.com
暗号化自体は出来ているのですが、それをpostするためにBase64の文字列にしたいというのが
最終的な目標なのですが、以下のリンクの2.暗号化されたバイト配列を文字列化する(暗号化文字列を得る)
に記載のあるimport javax.mail.internet.MimeUtility; が使えないかと思い質問しました。
上記MimeUtilityを使用しなくても暗号化した文字を正しくStringに出来る方法があればと思いご質問しました。
http://d.hatena.ne.jp/kenpoco/20080717/1216291915
暗号化した文字(byte[])をBase64にエンコードしてダメでした。
どうぞよろしくお願い致します。
On 12月2日, 午前1:57, 田代透 <toru2...@gmail.com> wrote:
> packagejavax.cryptohttp://developer.android.com/intl/ja/reference/javax/crypto/package-s...
>
> これはつかえませんか?
>
> 2011年12月2日1:47 ロウキル <rouk...@gmail.com>:
http://iharder.sourceforge.net/current/java/base64/
はどうですか。ライセンスがPublic Domainなので、使用しやすいです。
twitter: @andropenguin
HP: http://sarl-tokyo.com/wiki/index.php?Linux%E3%80%81Java%E3%80%81Android%E3%80%81%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E3%82%AC%E3%82%B8%E3%82%A7%E3%83%83%E3%83%88%E6%8A%80%E8%A1%93%E3%83%8E%E3%83%BC%E3%83%88
2011年12月2日10:36 ロウキル <rou...@gmail.com>:
extras/google/market_licensing/library/src/com/android/vending/
licensing/util/Base64.java
--
な
On Dec 2, 11:14 am, andropenguin s <andropeng...@gmail.com> wrote:
> andropenguinと言います。
>
> http://iharder.sourceforge.net/current/java/base64/
>
> はどうですか。ライセンスがPublic Domainなので、使用しやすいです。
>
> twitter: @andropenguin
> HP:http://sarl-tokyo.com/wiki/index.php?Linux%E3%80%81Java%E3%80%81Andro...
>
> 2011年12月2日10:36 ロウキル <rouk...@gmail.com>:
お世話になっております。
以下のように暗号化した文字列をStringにしようとしています。
byte[] aaa の時点では問題ないと思うのですが、str1 からバイトを取得すると
aaa と bbb で値が全然異なります。
Base64の処理についてはAPI8(OS2.2)であれば標準ライブラリに入っています。
ターゲットが2.2以降であればこちらを使われた方が良いかと思います。
使い方はこちらのサイトなどをご覧頂ければよいかと思います。
http://d.hatena.ne.jp/akitoh/20110317/1300371204
私が実際にやってる実装はこんな感じです。
(API7で動かす必要があったのでBase64はGoogle Market Licensing package
のを使ってます)
/**
* 文字列の暗号化
* @param encodeString 暗号化する文字列
* @return 暗号化した文字列
*/
private String encode(String encodeString) {
String result = null;
try {
Cipher cipher = Cipher.getInstance("AES/ECB/
PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, m_baseCipherKey);
byte[] tmp = encodeString.getBytes();
byte[] cipherResult = cipher.doFinal(tmp);
result = Base64.encode(cipherResult);
} catch (Exception e) {
Log.d("cipherMethod = encode", e.getMessage());
}
return result;
postメソッドで使うのでしたら、
URL_SAFE
が必要かも知れません。Base64化した文字列のHTTP送信で過去にはまったことがあります。