0
文字列の扱いについて
現在任意の文字列をバイトに分けて、さらにStringに戻るという処理を行っています。
例えばこんな感じです。
//任意の文字列
String test= "aaaaabbbbbcccccddddeeeefffgggggg";
//バイトに分ける
byte[] by = new byte[test.length()/2];
try {
for (int i=0;i<testKey.length();i+=2)
by[i/2] = (byte) Integer.parseInt(testKey.substring(i, i+2),16);
}
}
catch (NumberFormatException e) {
by=null;
}
//Stringに変換
String stAngokey = new String(by);
任意の文字列をまったく同じものを使用しても、サーバにより(JMにより?)Stringに変換した後の値が変わってしまいます。
new Stringの際に文字コードを指定しても違う値となってしまいます。
※用途としては暗号化のキーとして使用するのですが、
cipher.init(javax.crypto.Cipher.ENCRYPT_MODE, sksSpec);でキー長の不正で落ちてしまいます。
まったく原因がわからず困っています。
ご存知の方いらっしゃいましたら、アドバイスの程よろしくお願いします。