1 - BLOB to moja preferencja, ponieważ zakodowanie go do base64 zwiększy zarówno przestrzeń, jak i czas przetwarzania (ponieważ będziesz musiał również zdekodować base64 przed odszyfrowaniem)
2 - openssl_seal
nie daje klucza, który został użyty do zaszyfrowania danych. Celem env_keys jest przechowywanie zaszyfrowanego formularza wygenerowanego klucza. Kiedy wywołujesz openssl_open, podajesz mu ten klucz koperty i klucz prywatny, których potrzebuje do odszyfrowania klucz koperty. Klucz prywatny musi być zgodny z kluczem publicznym, który został użyty do wygenerowania klucza koperty.
3- Jeśli Twój klucz prywatny wymaga hasła, technicznie Twoje dane są względnie bezpieczny. Nawet jeśli mają klucz kopertowy i klucz prywatny, nie będą mogli go użyć… ale jak bezpieczne jest twoje hasło? Należy sobie uświadomić, że możesz prawie nigdy nie gwarantuj w pełni bezpiecznego schematu, ale z pewnością możesz utrudnić hakerom. Użyj swojej wyobraźni tutaj. Btw, czy twoje hasło jest w zwykłym tekście w twoim kodzie?