Я новичок в Swift, теперь я просто хочу перевести код java xor encrypt / decrypt в Swift, который используется для транзакций между сервером и клиентом. Ниже приведен код Java xor:
public static String encrypt(String password, String key) {
if (password == null)
return "";
if (password.length() == 0)
return "";
BigInteger bi_passwd = new BigInteger(password.getBytes());
BigInteger bi_r0 = new BigInteger(key);
BigInteger bi_r1 = bi_r0.xor(bi_passwd);
return bi_r1.toString(16);
}
public static String decrypt(String encrypted, String key) {
if (encrypted == null)
return "";
if (encrypted.length() == 0)
return "";
BigInteger bi_confuse = new BigInteger(key);
try {
BigInteger bi_r1 = new BigInteger(encrypted, 16);
BigInteger bi_r0 = bi_r1.xor(bi_confuse);
return new String(bi_r0.toByteArray());
} catch (Exception e) {
return "";
}
}
И я много искал о быстром шифровании xor и попробовал ответить по ссылкам ниже:
https://coderwall.com/p/timkvw/simple-xor-encryption-and-decryption-in-swift-playground-code.
Быстрое простое шифрование XOR
Но все они не могут получить одну и ту же зашифрованную строку по сравнению с моим Java-кодом, теперь мой Java-код работает, и нет возможности его изменить.
Я думал, что это может быть вызвано шестнадцатеричным числом, но быстро я не могу найти нигде о быстром xor шестнадцатеричном.
Итак, что мне нужно, так это то, что быстрый код может получить ту же зашифрованную строку, что и вставленный мной Java-код, зашифрованная строка, сгенерированная моим клиентом Java, может быть расшифрована в моем клиенте iOS.
Большое спасибо тем, кто может мне помочь! Я занимаюсь этим целый день!
Еще раз спасибо.