Как зашифровать строки в php?

Пользователь

от jaren , в категории: PHP , 2 года назад

Как зашифровать строки в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dmitrypro77 , 2 года назад

@jaren Все зависит от того что нужно ли это строки обратно расшифровывать или нет

  1. Можно использовать base64_encode чтобы защифровать и base64_decode чтобы потом расшифровать строку в PHP
  2. md5() в основном используют для шифрования паролей (нет возможности расшифровать строку обратно)
  3. password_hash() алгоритм для шифрования паролей (нет возможно расшифровать строку обратно)

Пример кода на PHP:

1
2
3
4
5
6
7
8
9
<?php

$str = "test string";

echo base64_encode($str);

echo md5($str);

echo password_hash($str, PASSWORD_DEFAULT);


Всегда открыт для интересных проектов. Ссылки на мои соц. сети в профиле.

Пользователь

от miguel_ritchie , год назад

@jaren 

В PHP есть функция шифрования mcrypt, которая может использоваться для шифрования строк. Например, можно использовать функцию mcrypt_encrypt() с алгоритмом AES для шифрования строки:

1
2
3
4
5
6
7
8
9
$plaintext = "This is the string to be encrypted";
$key = "This is the encryption key";
$cipher = "rijndael-128";
$mode = "cbc";

$iv_size = mcrypt_get_iv_size($cipher, $mode);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

$ciphertext = mcrypt_encrypt($cipher, $key, $plaintext, $mode, $iv);


$ciphertext - зашифрованная строка


Для расшифровки можно использовать mcrypt_decrypt() с тем же ключом и вектором инициализации, которые использовались для шифрования:

1
$plaintext = mcrypt_decrypt($cipher, $key, $ciphertext, $mode, $iv);


$plaintext - расшифрованная строка


Однако, некоторые из этих функций устарели и не рекомендуется их использовать. В новых версиях PHP рекомендуется использовать функции openssl_encrypt() и openssl_decrypt()

1
2
3
4
5
$plaintext = "This is the string to be encrypted";
$key = "This is the encryption key";
$cipher = "aes-256-cbc";
$options = 0;
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv