String s = "шЗЭШРЫУЫЮЙ";
String s2 = "";
for (int i = 0; i < s.length(); i++) {
int tmp = s.charAt(i);
s2 += (char)(tmp ^ 54);
}
System.out.println(s2);
bb = bytearray("шЗЭШРЫУЫЮЙ".encode('WINDOWS-1251'))
for i in range(len(bb)):
bb[i] ^= 54
print(bb.decode('WINDOWS-1251')) # Осложнения
цчфхтурсюяьэъышщжздевгабопмнклийћЦЧФХТУРСЮЯЬЭЪЫШЩЖЗДЕВГАБОПМНКЛИЙЋ
АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯЁабвгдежзийклмнопрстуфхцчшщъыьэюяё
public static String xor54Str(String s) {
String sourcePattern = "ёйцукенгшщзхъфывапролджэячсмитьбюЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ";
String resultPattern = "ЋЯАЕЬУЫХОПСГМВНФЦЩЖШЭТРЛЙБЗЪЮДКЧИћяаеьуыхопсгмвнфцщжшэтрлйбзъюдкчи";
StringBuilder res = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
int j = resultPattern.indexOf(s.charAt(i));
if (j == - 1) {
int tmp = s.charAt(i);
res.append((char) (tmp ^ 54));
}
else {
res.append(sourcePattern.charAt(j));
}
}
return res.toString();
}