2016-03-28 3 views
0

У меня есть нормальная строка:Javascript & php: как закодировать нормальную строку в закодированной короткой строке?

var string = "Hello i'm fine" 

Я хочу, чтобы кодировать его в короткий закодированной строке.

И я хочу получить исходную длинную строку, расшифровав короткую строку.

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

Так что я ищу способ сделать это в javascript и в php.

Идея?

+0

Что вы определяете как «длинную строку» _ и «короткую строку» _? – CodeGodie

+0

Я ошибаюсь. Я хочу иметь в виду «нормальную строку» для «короткой строки». «короткая строка» - это закодированная строка. Длина закодированной строки должна быть короче обычной строки. – totoaussi

+1

i googled, и это пришло: http://stackoverflow.com/questions/11076221/php-encrypt-decrypt-short-string вы уже пробовали это? – CodeGodie

ответ

1

Для вашего примера не так просто сократить строку (см. Ниже). Но если ваш вклад является более длинной строкой, вы можете использовать функцию компрессионной в сочетании с кодированием base64:

<?php 
$input = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt."; 

$encoded = base64_encode(gzdeflate($input)); 
$decoded = gzinflate(base64_decode($encoded)); 
var_dump($encoded); 
var_dump($decoded); 

вход имеет 489 символов, кодированный только 372!

string(372) "PVHZTcQwEG1lCojSA4IfJEQPxh7CIF87x9bPc7LLhyUf7xx/DOVGMi0alVGHkolTauwb5dGNs7MHK6UiUyxLP4ir+E4v3Dl1gFobZVCVI2oiPtgvoX9ES2Zpp1c42MgiRj35uAXTZOzkK4xAaunoeCtYM6mHCnfcju5sGyiWEURJpUiOCk4L2+ltdM50i9ToG7mAjOoqWRg2nDd41MpLYxly4ELZBVlusdDGbafPqIh+1oWSX4lPAHGX9nSZXJh+w3xs9K2YhCzanetGqQr0/bK8R53hyfmcBh41x07v/RR7CujP6BktAgBpk7UI+AlsTG2Nxegunni7CI+Q+CTJHo+y6HOFaqOu46Pa8nJYK7n0LCU6vusP" 
string(489) "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt." 

Для коротких строк это может быть, возможно, выбирая наборы символов шикарно. Короткий набор символов ввода и большой набор выходных символов могут уменьшить длину строки. Читайте также: Shortest possible encoded string with decode possibility (shorten url) using only PHP

В Javascript концепция та же, но, возможно, вам нужна библиотека для сжатия.

Пожалуйста, помните: это не шифрование только для кодирования! Не используйте это для скрытия информации

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