Я хочу зашифровать данные в мидлете, которые нужно отправить сервлету.Я мог зашифровать данные в мидлете.Я использовал Bouncycastle.Это работало отлично (я мог хорошо зашифровать и расшифровать).Затем я отправляю зашифрованные данные сервлету.Для простого тестирования я просто использовал тот же код (при расшифровке, который я использовал в мидлете) в сервлете для расшифровки.Но теперь проблема в том, что данные не получаются при отправке мидлета. Зашифрованные данные были изменены.Вот образец, который я получил.это выход после шифрования в мидлете.Ë Ë Ë T T enter enter enter enter enter enter здесь, но когда я получил это от сервлета, я думал, что входящий поток.печатный результат: ƒ ¸ ¸ ˜ ˜ ˜ ˜ ˜ • • • T «« «¼ ¼ ¼ ¼ ¼ A A A A A A b b b b b b b b b b also also.crypto.IllegalBlockSizeException: длина ввода должна быть кратна 8 при дешифровании с использованием шифра с добавлением. Вот как я отправляю данные на сервер из мидлета:
String serverResponse = "not send to server";
HttpConnection connection = null;
InputStream inputstream = null;
try {
connection = (HttpConnection) Connector.open(url);
connection.setRequestProperty("User-Agent", "Profile/MIDP- 1.0,Configuration/CLDC-1.0");
connection.setRequestMethod(HttpConnection.POST);
DataOutputStream os = (DataOutputStream) connection.openDataOutputStream();
System.out.println("Writing message is: " + msg);
os.writeUTF(msg);
os.flush();
os.close();
, а в сервлете вот как я получил: внутриМетод processRequest -------------------------------------------------------------
response.setContentType("text/plain");
ServletInputStream sin = request.getInputStream();
String str = "";
while ((i = sin.read()) != -1) {
ch = (char) i;
str = str + ch;
}
str.trim();
System.out.println("Received Stream From MIDlet Encript data=" + str);
вот как я шифрую данные с помощью bouncycastle DES algorythm
public byte [] encrypt (String textToEnrypt,String keyString) {
Cipher cipher = null;
try {
cipher = Cipher.getInstance("DES");
} catch (Exception ex) {
System.out.println(ex.toString());
// return;
}
byte[] keyData = keyString.getBytes();
SecretKeySpec key = new SecretKeySpec(keyData, 0, keyData.length, "DES");
try {
cipher.init(Cipher.ENCRYPT_MODE, key);
} catch (Exception ex) {
System.out.println(ex.toString());
// return;
}
int cypheredBytes = 0;
byte[] inputBytes = null;
try {
inputBytes = textToEnrypt.getBytes("UTF-8");
inputBytes = textToEnrypt.getBytes();
} catch (Exception ex) {
System.out.println(ex.toString());
//return;
}
byte[] outputBytes = new byte[100];
try {
cypheredBytes = cipher.doFinal(inputBytes, 0, inputBytes.length,
outputBytes, 0);
} catch (Exception ex) {
System.out.println(ex.toString());
//return;
}
/*
String str = new String(outputBytes, 0, cypheredBytes);
buffer = str;
System.out.println("Encrypted string = " + str);
* */
newResponse = new byte[cypheredBytes];
for (int i = 0; i < cypheredBytes; i++) {
newResponse[i] = outputBytes[i];
}
buffer=new String(newResponse);
System.out.println("Encripted text is:"+buffer);
return newResponse;
}
public void decrypt(String textToDecrypt, String keyString) {
Cipher cipher;
try {
cipher = Cipher.getInstance("DES");
} catch (Exception ex) {
System.out.println(ex.toString());
return;
}
byte[] keyData = keyString.getBytes();
SecretKeySpec key = new SecretKeySpec(keyData, 0, keyData.length, "DES");
try {
cipher.init(Cipher.DECRYPT_MODE, key);
} catch (Exception ex) {
System.out.println("2. " + ex.toString());
return;
}
int cypheredBytes = 0;
byte[] inputBytes;
try {
inputBytes =textToDecrypt.getBytes("UTF-8");
inputBytes = textToDecrypt.getBytes();
} catch (Exception ex) {
System.out.println("3. " + ex.toString());
return;
}
byte[] outputBytes = new byte[100];
try {
cypheredBytes = cipher.doFinal(inputBytes, 0, inputBytes.length,
outputBytes, 0);
} catch (Exception ex) {
System.out.println("4. " + ex.toString());
return;
}
String str = new String(outputBytes, 0, cypheredBytes);
System.out.println("Decrypted string = " + str);
}
Я новичок в этих вещах.Я получил эти коды с этого сайта.Пожалуйста, дайте мне знать, как получить данные в сервлете при отправке мидлетом. (Без изменения данных ...), если вы видите какую-то ошибку в моем коде или способе попытаться получить ... пожалуйста, дайте мне знать с примером кода.или, если где-то есть работающий пример кода для отправки данных из мидлета в сервлет, сообщите мне
Спасибо