Нов съм в Swift, сега просто искам да преведа java xor код за криптиране/декриптиране на 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 "";
}
}
И аз търсих много за криптиране на swift xor и опитах отговора във връзките по-долу:
https://coderwall.com/p/timkvw/simple-xor-encryption-and-decryption-in-swift-playground-code
Но всички те не могат да получат същия шифрован низ в сравнение с моя Java код, сега моят Java код беше активен и няма начин да го променя.
Мислех, че може да е причинено от шестнадесетичния, но в swift не мога да намеря никъде за swift xor шестнадесетичен.
Така че това, от което се нуждая, е, че swift кодът може да получи точно същия криптиран низ като Java кода, който съм поставил, криптираният низ, генериран от моя Java клиент, може да бъде дешифриран в моя iOS клиент.
Благодаря много на всеки, който може да ми помогне да се справя с това! Цял ден се занимавам с това!
Благодаря отново.