2016-12-23 4 views
0

Я пытаюсь воссоздать некоторый PHP-код openssl в командной строке. Я был в состоянии получить следующий код PHP для работы:Расшифровка с помощью openssl des-ede из командной строки с нулевым заполнением и необработанными данными

$key = 'aaaaaaaabbbbbbbbccccccccdddddddd'; 
$key = pack('H*',$key); 

$data = 'b5057bbc04b842a96144a0f617f2820e'; 
$data = pack('H*',$data); 

$result = openssl_decrypt($data,'des-ede', $key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING); 

Команда, которую я сейчас работаю (Ubuntu)

openssl des-ede -in encrypted-data.txt -out decrypted-data.txt -d -K aaaaaaaabbbbbbbbccccccccdddddddd -nopad

Ключ

ключ, который im decrypting with имеет шестнадцатеричное значение: aaaaaaaabbbbbbbbccccccccdddddddd. Может ли этот ключ быть передан как шестнадцатеричный?

Зашифрованные данные

Зашифрованные данные я передаю в зашифрованы-data.txt файл является шестнадцатеричное значение: b5057bbc04b842a96144a0f617f2820e. Данные должны дешифровать до Test123123. Я попытался преобразовать зашифрованные данные в двоичный файл и передать его через .bin-файл без успеха. Должны ли эти данные быть преобразованы в какой-либо другой формат перед передачей?

Параметры,

Я считаю, что я имею вопрос перевода параметров PHP OPENSSL_RAW_DATA и OPENSSL_ZERO_PADDING моей командной строки вызова. Я обнаружил опцию -nopad, но я не уверен, если она эквивалентна параметрам в php

+0

Это прекрасно работает. Ключ в вашем примере - это просто неправильно. – pvg

+0

@pvg Вы имеете в виду, что ключ должен быть в другом формате? Я могу расшифровать данные с помощью этого ключа в php. – Tony

+0

Нет. Я имею в виду, что вы буквально набрали неправильный характер. У вас есть опечатка. Вырезать и вставить ключ из PHP-кода. – pvg

ответ

1

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

pvg /tmp ➤ more e.php 
<?php 
$data = 'b5057bbc04b842a96144a0f617f2820e'; 
$data = pack('H*',$data); 

echo $data; 
pvg /tmp ➤ php e.php > in 
pvg /tmp ➤ openssl des-ede -in in -out out -d -K aaaaaaaabbbbbbbbccccccccdddddddd -nopad 
pvg /tmp ➤ cat out 
Test123123%  
+0

@pvc Вы красивый человек – Tony

Смежные вопросы