Используйте этот класс для шифрования. Это работает.
public class ObjectCrypter {
public static byte[] encrypt(byte[] ivBytes, byte[] keyBytes, byte[] mes)
throws NoSuchAlgorithmException,
NoSuchPaddingException,
InvalidKeyException,
InvalidAlgorithmParameterException,
IllegalBlockSizeException,
BadPaddingException, IOException {
AlgorithmParameterSpec ivSpec = new IvParameterSpec(ivBytes);
SecretKeySpec newKey = new SecretKeySpec(keyBytes, "AES");
Cipher cipher = null;
cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, newKey, ivSpec);
return cipher.doFinal(mes);
}
public static byte[] decrypt(byte[] ivBytes, byte[] keyBytes, byte[] bytes)
throws NoSuchAlgorithmException,
NoSuchPaddingException,
InvalidKeyException,
InvalidAlgorithmParameterException,
IllegalBlockSizeException,
BadPaddingException, IOException, ClassNotFoundException {
AlgorithmParameterSpec ivSpec = new IvParameterSpec(ivBytes);
SecretKeySpec newKey = new SecretKeySpec(keyBytes, "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, newKey, ivSpec);
return cipher.doFinal(bytes);
}
}
И это ivBytes и случайный ключ;
String key = "e8ffc7e56311679f12b6fc91aa77a5eb";
byte[] ivBytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
keyBytes = key.getBytes("UTF-8");
Это проблема, известная как политика одного происхождения. По сути, это мера безопасности от создания лазеек в системе безопасности.
Если у вас есть iframe, который указывает на страницу в вашем собственном домене, JavaScript может получить доступ как к странице, на которой вы находитесь, так и к странице внутри Iframe. Это приемлемые отношения между родительским элементом и дочерним элементом с родительским.
(parent doc) (iframe doc)
HTML --> IFRAME <-- HTML
^--------|---------^
Однако, как только у вас есть файл, указывающий на внешнюю страницу, SOP вступает в игру и использует любую информацию, передаваемую между родительской страницей и страницей iframe.
(parent doc) (iframe doc)
HTML --> IFRAME <-- HTML
X
Прочтите этот пост о взаимодействии с iframe, это имеет смысл! Stackoverflow post
Эти ссылки тоже действительно помогают!
1) Безопасная междоменная связь в браузере
2) wiki SOP или Same Origin Policy
Удачи!
Эта страница предлагает вам разместить на своих страницах некоторый javascript, который определяет отсутствие постоянных файлов cookie. Когда он обнаруживает, что cookie не был установлен, он отправляет необходимые данные сеанса на страницу, которая устанавливает cookie, и перенаправляет вас обратно на исходную страницу.
По-видимому, POST-запроса достаточно, чтобы удовлетворить тест Safari «перешел ли я к этому домену», поэтому с этого момента он принимает файлы cookie из этого домена.
Конечно, это не самый лучший код, но он вполне может решить вашу проблему. проблема.
Одно из решений (немного запутанное) может заключаться в том, чтобы родительская страница проверяла наличие файла cookie и, если файл cookie отсутствует, запускать AJAX-вызов скрипта в домене страницы iframe. который устанавливает cookie.