Как сделать дешифрование AES256 в PHP?

Я думаю, прежде всего, что Вы запутываетесь между program's stack и any old stack.

Стопка А

Является структурой абстрактных данных, которая состоит из информации в системе Метода "последним пришел - первым вышел". Вы помещаете произвольные объекты на стек, и затем Вы снимаете их снова, во многом как в / лотке, главный объект всегда является тем, который снят, и Вы всегда ставите к вершине.

Стопка Программ А

Является стеком, это - раздел памяти, которая используется во время выполнения, он обычно имеет статический размер на программу и часто используемый для хранения параметров функции. Вы продвигаете параметры на стек, когда Вы вызываете функцию и функцию или обращаетесь к стеку непосредственно или появляетесь от переменных от стека.

стопка программ А не является обычно аппаратными средствами (хотя это сохранено в памяти, таким образом, это может быть обсуждено как таковое), но Указатель вершины стека, который указывает на текущую область Стека, обычно является регистром ЦП. Это делает это немного более гибким, чем стек LIFO, поскольку можно изменить точку, в которой стек обращается.

необходимо читать и удостовериться, что Вы понимаете Википедия статья, поскольку она дает хорошее описание Аппаратной Стопки, которая является тем, с чем Вы имеете дело.

существует также это учебное руководство , которое объясняет стек с точки зрения старых регистров на 16 битов, но могло быть полезным и другой конкретно о стеке.

От Nils Pipenbrinck:

Это достойно упоминания, что некоторые процессоры не реализуют все инструкции для доступа и управления стеком (нажатие, поп, указатель вершины стека, и т.д.), но x86 делает из-за, это - частота использования. В этих ситуациях, если бы Вы хотели стек, необходимо было бы реализовать его сами (некоторый MIPS, и некоторые процессоры ARM создаются без стеков).

, Например, в миллионе операций в секунду инструкция по нажатию была бы реализована как:

addi $sp, $sp, -4  # Decrement stack pointer by 4  
sw   $t0, ($sp)   # Save $t0 to stack  

и инструкция Pop был бы похож:

lw   $t0, ($sp)   # Copy from stack to $t0  
addi $sp, $sp, 4   # Increment stack pointer by 4  

5
задан hakre 10 December 2012 в 15:44
поделиться

1 ответ

I'm not terribly familiar with this stuff, but it seems like trying MCRYPT_RIJNDAEL_256 in place of MCRYPT_RIJNDAEL_128 would be an obvious next step...

Edit: You're right -- this isn't what you need. MCRYPT_RIJNDAEL_128 is in fact the right choice. According to the link you provided, your key and IV are twice as long as they should be:

// How do you do 256-bit AES encryption in PHP vs. 128-bit AES encryption???
// The answer is:  Give it a key that's 32 bytes long as opposed to 16 bytes long.
// For example:
$key256 = '12345678901234561234567890123456';
$key128 = '1234567890123456';

// Here's our 128-bit IV which is used for both 256-bit and 128-bit keys.
$iv =  '1234567890123456';
6
ответ дан 14 December 2019 в 08:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: