Како шифровати и дешифровати стринг у ПХП-у?

Kako Sifrovati I Desifrovati String U Php U



Шифровање је процес претварања података у тајни код или формат који није разумљив никоме ко нема кључ да их декодира. Дешифровање је поступак преузимања те информације и враћања у оригинални, читљив формат. У ПХП-у, шифровање, и дешифровање може се користити за заштиту осетљивих података, као што су лозинке, подаци о кредитној картици и други лични подаци.

Тхе енкрипција алгоритам треба да узме низ података које желите да шифрујете и да користи изабрани метод шифровања за шифровање података. Алгоритам би тада требало да врати шифроване податке у формату који можете да ускладиштите у бази података или датотеци.

До дешифровати података, требало би да користите исти метод шифровања да дешифрујете податке који су коришћени за њихово шифровање. То значи да ћете морати негде да ускладиштите кључ како бисте га касније могли користити за декодирање података.







Како шифровати и дешифровати ПХП стринг?

ПХП стринг може бити шифровано и дешифрован помоћу опенссл_енцрпит() и опенссл_децрипт() методе, респективно.



Шифрујте стринг помоћу функције опенссл_енцрипт().

До шифровање стринга у ПХП-у користећи опенссл_енцрипт() функцију, потребно је да обезбедите стринг отвореног текста, метод шифровања и кључ. Функција ће вратити шифроване податке, које онда можете безбедно сачувати или пренети.



Синтакса за опенссл_енцрипт() метод је:





стринг опенссл_енцрипт ( низ $дата , низ $метход , низ $кеи , $оптионс = 0 , низ $ив , низ $таг = НУЛА , низ $ иоу , инт $таг_ленгтх = 16 )
  • $дата: Стринг или подаци које желите да шифрујете.
  • $метод: Метода шифровања или шифра коју желите да користите. Можете добити листу подржаних метода шифрирања користећи опенссл_гет_ципхер_метходс()
  • $кеи: Кључ за шифровање који ће се користити за шифровање података. То би требало да буде низ одговарајуће дужине и насумице, на основу изабраног метода шифровања.
  • $оптионс: Опциони параметар који може да садржи додатне заставице за одређене опције шифровања. Можете комбиновати заставе користећи битно ИЛИ (|) Уобичајене заставе укључују ОПЕНССЛ_РАВ_ДАТА и ОПЕНССЛ_ЗЕРО_ПАДДИНГ .
  • $ив: Вектор иницијализације (ив) који се користи за шифровање; требало би да буде случајна и јединствена вредност, дата као стринг.
  • $таг: Опциони параметар који се користи за АЕАД (проверено шифровање са придруженим подацима) режиме шифровања, као што је ГЦМ (Галоис/Режим бројача) или ЦЦМ (бројач са ЦБЦ-МАЦ). Он чува ознаку за аутентификацију генерисану током шифровања.
  • Ваш: Додатни аутентификовани подаци који се могу користити за АЕАД режиме шифровања.
  • $таг_ленгтх: Дужина ознаке за потврду идентитета. За ГЦМ режим, дужина ознаке се креће од 4 до 16 бајтова.

На пример:


$симпле_стринг = „Добро дошли у Линукхинт ' ;
одјек 'Оригинални стринг: ' . $симпле_стринг ;
$шифровање = 'АЕС-128-ЦТР' ;
$ив_ленгтх = опенссл_ципхер_ив_ленгтх ( $шифровање ) ;
$оптионс = 0 ;
$енцриптион_ив = '1234567891011121' ;
$енцриптион_кеи = 'Линукс' ;
$енцриптион = опенссл_енцрипт ( $симпле_стринг , $шифровање ,
$енцриптион_кеи , $оптионс , $енцриптион_ив ) ;
одјек 'Шифровани стринг: ' . $енцриптион . ' ' ;
?>

Код прво декларише основни текст „Добро дошли у Линукхинт“ и користи команду ехо да то прикаже. Затим одређује алгоритам шифровања који ће се користити, АЕС-128-ЦТР . Такође користи опенссл_ципхер_ив_ленгтх() функција за израчунавање величине вектор иницијализације (ИВ) потребно за ову шифру.



Код поставља шифровање ив вредност за „1234567891011121“ и кључ за шифровање 'Линук' . Шифровани низ се затим приказује помоћу команде ецхо када се шифровање заврши коришћењем опенссл_енцрипт() функција. Због случајног вектора иницијализације који се користи за шифровање, коначни шифровани стринг ће варирати сваки пут.

Дешифрујте стринг помоћу функције опенссл_децрипт().

Да бисте дешифровали стринг у ПХП-у, можете користити опенссл_децрипт() функција. Ова функција узима шифроване податке, метод шифровања и кључ као улазе и враћа дешифровани отворени текст.

Синтакса за опенссл_децрипт() метод је:

стринг опенссл_децрипт ( низ $дата , низ $метход , низ $кеи , инт $оптионс = 0 , низ $ив , низ $таг , низ $ иоу )

Аргументи који се прослеђују функцији су:

  • $дата: Шифровани низ или подаци које желите да дешифрујете.
  • $метод: Метода шифровања или шифра која се користи током шифровања. Можете добити листу подржаних метода шифрирања користећи опенссл_гет_ципхер_метходс()
  • $кеи: Кључ за шифровање који је коришћен за шифровање података. Требало би да се подудара са кључем који се користи током шифровања.
  • $оптионс: Опциони параметар који може да садржи додатне заставице за одређене опције дешифровања. Можете комбиновати заставице користећи битни ОР (|) оператор. Уобичајене заставе укључују ОПЕНССЛ_РАВ_ДАТА и ОПЕНССЛ_ЗЕРО_ПАДДИНГ .
  • $ив: Тхе вектор иницијализације (ИВ) користи се током шифровања. То би требало да буде исти ИВ који је коришћен током шифровања и прослеђен као стринг.
  • $таг: Ознака за аутентификацију за АЕАД (проверено шифровање са придруженим подацима) режиме шифровања, као што је ГЦМ (Галоис/Цоунтер Моде) или ЦЦМ (Цоунтер витх ЦБЦ-МАЦ). Ако аутентификација не успе, опенссл_децрипт() ће вратити ФАЛСЕ.
  • Ваш: Додатни потврђени подаци који су коришћени током шифровања за АЕАД режиме шифровања.

Повратна вредност: Ако успе, враћа дешифровани стринг; у супротном, враћа ФАЛСЕ.

На пример:


$енцриптед_стринг = 'рКаеИсИаЊкВбРПмЈизрдКс0кутЛЕ' ;
одјек 'Шифровани стринг: ' . $енцриптед_стринг . ' ' ;
$децриптион_ив = '1234567891011121' ;
$шифровање = 'АЕС-128-ЦТР' ;
$оптионс = 0 ;
$децриптион_кеи = 'Линукс' ;
$дешифровање = опенссл_децрипт ( $енцриптед_стринг , $шифровање ,
$децриптион_кеи , $оптионс , $децриптион_ив ) ;
одјек 'Дешифровани стринг: ' . $дешифровање ;
?>

Дужина вектора у овом коду се израчунава помоћу опенссл_ципхер_ив_ленгтх() функција, а иста енкрипција ив и кључни параметри се користе током шифровања. Алгоритам за шифровање је дефинисан као АЕС-128-ЦТР .

Претходно шифровани стринг се дешифрује коришћењем алгоритма за шифровање, кључа за шифровање, подешавања и ИВ вредности помоћу опенссл_децрипт() функција. Добијени дешифровани текст се затим приказује помоћу команде ецхо.

Закључак

Креирање веб страница често укључује шифровање и дешифровање података. Коришћењем шифровања за заштиту осетљивих података, можете избећи излагање својих корисника крађи идентитета, превари и другим безбедносним претњама. Низови у ПХП-у могу бити шифровани и дешифровани помоћу функција опенссл_енцрипт() и опенссл_децрипт() функције. Пажљивим коришћењем алгоритма за шифровање и кључа, можете креирати робустан и безбедан систем за руковање осетљивим подацима у вашим ПХП апликацијама.