Это решение совместимо с Android (я тестировал и использовал его сам). Благодаря @ user467257, решение которого я адаптировал это.
import android.util.Base64;
public class StringXORer {
public String encode(String s, String key) {
return new String(Base64.encode(xorWithKey(s.getBytes(), key.getBytes()), Base64.DEFAULT));
}
public String decode(String s, String key) {
return new String(xorWithKey(base64Decode(s), key.getBytes()));
}
private byte[] xorWithKey(byte[] a, byte[] key) {
byte[] out = new byte[a.length];
for (int i = 0; i < a.length; i++) {
out[i] = (byte) (a[i] ^ key[i%key.length]);
}
return out;
}
private byte[] base64Decode(String s) {
return Base64.decode(s,Base64.DEFAULT);
}
private String base64Encode(byte[] bytes) {
return new String(Base64.encode(bytes,Base64.DEFAULT));
}
}
Вся суть jQuery в том, что вам не нужно беспокоиться о различиях в браузерах. Я почти уверен, что вы можете спокойно использовать , введите , равное 13 во всех браузерах. Имея это в виду, вы можете сделать следующее:
$(document).on('keypress',function(e) {
if(e.which == 13) {
alert('You pressed enter!');
}
});
Существует метод события keypress () . Ascii-номер клавиши Enter - 13 и не зависит от того, какой браузер используется.