3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * http://stackoverflow.com/questions/9262109/php-simplest-two-way-encryption/30189841#30189841 * * This is not safe to use */ class UnsafeCrypto { const METHOD = 'aes-256-ctr'; /** * Encrypts (but does not authenticate) a message * * @param string $message - plaintext message * @param string $key - encryption key (raw binary expected) * @param boolean $encode - set to TRUE to return a base64-encoded * @return string (raw binary) */ public static function encrypt($message, $key, $encode = false) { $nonceSize = openssl_cipher_iv_length(self::METHOD); $nonce = openssl_random_pseudo_bytes($nonceSize); $ciphertext = openssl_encrypt( $message, self::METHOD, $key, OPENSSL_RAW_DATA, $nonce ); // Now let's pack the IV and the ciphertext together // Naively, we can just concatenate if ($encode) { return base64_encode($nonce.$ciphertext); } return $nonce.$ciphertext; } /** * Decrypts (but does not verify) a message * * @param string $message - ciphertext message * @param string $key - encryption key (raw binary expected) * @param boolean $encoded - are we expecting an encoded string? * @return string */ public static function decrypt($message, $key, $encoded = false) { if ($encoded) { $message = base64_decode($message, true); if ($message === false) { throw new Exception('Encryption failure'); } } $nonceSize = openssl_cipher_iv_length(self::METHOD); $nonce = mb_substr($message, 0, $nonceSize, '8bit'); $ciphertext = mb_substr($message, $nonceSize, null, '8bit'); $plaintext = openssl_decrypt( $ciphertext, self::METHOD, $key, OPENSSL_RAW_DATA, $nonce ); return $plaintext; } } $message = 'Ready your ammunition; we attack at dawn.'; $key = hex2bin('000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f'); $encrypted = UnsafeCrypto::encrypt($message, $key); $decrypted = UnsafeCrypto::decrypt($encrypted, $key); print_r($encrypted); //var_dump($encrypted, $decrypted);
Output for 7.1.26 - 7.1.33, 7.2.6 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
Fatal error: Uncaught Error: Call to undefined function openssl_cipher_iv_length() in /in/CHPMk:21 Stack trace: #0 /in/CHPMk(76): UnsafeCrypto::encrypt('Ready your ammu...', '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\v\f\r\x0E...') #1 {main} thrown in /in/CHPMk on line 21
Process exited with code 255.
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 Fatal error: Uncaught Error: Call to undefined function openssl_cipher_iv_length() in /in/CHPMk:21 Stack trace: #0 /in/CHPMk(76): UnsafeCrypto::encrypt('Ready your ammu...', '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\v\f\r\x0E...') #1 {main} thrown in /in/CHPMk on line 21
Process exited with code 255.
Output for 7.2.0
��v�)���k`���"�d�0�z��ͭ5�l � 8SEW[$R��a4���p�
Output for 7.1.10
t��12a�χy���!�@�URT&ih��'�;?9���V?�`��l�']/��tOԭ
Output for 7.1.7
Θ���ԕ x���V���]�!�o����_ y�� )$��.�A��k�2S4��
Output for 7.1.6
�A^��U�=%��&��x<s�W�3��� `(��EX�3�d_8��Z�fy�P߁7
Output for 7.1.5
��K�g�w�w�h�C_��=ѐ��2�m=��CӞ���i�#R.\,=�|��i��
Output for 7.1.4
�3`��(�E�2%l�a�Ě]�y<�es�M���d�_����$�xY�}���ec��
Output for 7.1.3
-�����@$��Xp𱣈�o���K�ST:����h �4�o�k\��l���∝�
Output for 7.1.2
꾅jcL�G�x�]�X}w��6YW$G���,������IEG�H �lcY��Έ�8
Output for 7.1.1
u�W@w��*^t�Ib�H�(��RT�.K�[4#pV�"��p� �q�����-��'
Output for 7.1.0
3�O�9`U�‘p�����Y�=4ݘ�n #.�v˅���%�%��v��>EC��T0Z�\$
Output for 7.0.20
������ѕ������n}P�pg�t*�����%V�� �7_!�9p[ۆ�D?{�$B
Output for 7.0.19
u��F�ˉv��G+5�Vg �B�&��tM�j�%Ws.I�\��( �*�:�m�]�� �
Output for 7.0.18
��Q�^��f,KM������~�fk]�ڎΚ��Ai�0���7&�5��s�(�
Output for 7.0.17
.v��sy��k�?"4����&ם�Q�yQ\�C�˿J#p��E�y�Ɲ�k���$a)�
Output for 7.0.16
�E��B�����Xd��x��$�6�%�q����ά"3��i,hl��:І��o�Tle
Output for 7.0.15
Nk��m^�A�G�..^ֿ�m��C�#��6��� V>�w�]�B�,�M��6Z
Output for 7.0.14
)�כ�$۹���˅I�L��O�:��XPOG'����7�"��+l���R
Output for 7.0.13
`R�e� A�SQE��A�t�z�aB�����^`�C� �A���-�3������$
Output for 7.0.12
��ڦT��L�J�7]�u�:_�J���ʒ�.��:V֑�1-���^�u��B�
Output for 7.0.11
6��"�q���ܫ��y(Sl��O'������ʣ�i�w@��!��Y$��[�yѲ�)
Output for 7.0.10
!zZ>�,��b7���{�iɾ�5�z�B��w���仛Dz4;��Q�A��;%��x��
Output for 7.0.9
�s�i����r�(8Y����E�f�Z��-��<'*��8���gm$�� tA6R��
Output for 7.0.8
楁����-���k�.l����C�=�f��K7 X�w*�oۑ�`�Po��pV�R�
Output for 7.0.7
��mA�u�<ZD���u �GսQ�1oY�[EkB���h���u��~�U;F{��8��obwH
Output for 7.0.6
�Y��g;+o[b36D������ �, �����69�yp�(a9 �q�^� �
Output for 7.0.5
}O��pT��x��w�9���` 2O9��>��3��(�~L�l�`��٭�n:�r��ȧ��
Output for 7.0.4
����.mg�;W��œ�t\��z�R^�!�˛)��3�:Hi��7��ڱ�'
Output for 7.0.3
���� D' �M#3��<^�g�)���tk���<�77s�9��W �T�|f�ڭ��a7
Output for 7.0.2
֜�y4$�KU��s���Ŕ���F�� ��U��mTM$�^=��Hʺ����s�r�
Output for 7.0.1
���6x�兣����O-Fx�fI;��{�@S��CX��NJeѴ��” �?�ӻ�f�u
Output for 7.0.0
c��&�BS���f]��� \���$��y�[�P�8n��Qg���c�i�d��7�|�
Output for 5.6.30
�C8 -��Ӣ�D%v}g^},3&�Skg{*�a�sf�V��@Y�#���@ � l�T��
Output for 5.6.29
��ȃ�@�a�&^}�!����]{噋,�48۩�N�����ܡ��� �VͲuZ��4
Output for 5.6.28
�*Nt��6�͏r�(����h��*�3a�y�#���T/4�>� �Y�WH�
Output for 5.6.27
h>7 � � U<�}ch�q���HiP��d ���HJP��/�SY������c.nb
Output for 5.6.26
�Z�'ߡI�~;*�7�~ ���1 �P�8Ht�� ���X�� F���F�P }�|���Y�D
Output for 5.6.25
ڜ�0��As�}"S��m�)LR��e�n� �a�R'Э!�A�ن�S�qh��4v���
Output for 5.6.24
W�փ�ľ��(`N�kמ:ӥB�y]�T���� �>kr���?��b���ъ�͂
Output for 5.6.23
<��C5Һ'�Xαsc�� �ф-B�1�꡼�br�j�縃>����~��JE2��Vo
Output for 5.6.22
9�B������_������q�ט[���#�T����_�yh0Rp��xÈky�}��
Output for 5.6.21
R���y��=<K�~��b����=�I<W��`|�3pk�2#jv)��4<��e^凟�I
Output for 5.6.20
�^�<,d�P��S�?ӳFj�'���OB�O�d���uhD�,?E�}e��-/ �c
Output for 5.6.19
h��M�9x�{��u�)��6�3�%�*��hx���$�r�]8�My-�κ �9�����
Output for 5.6.18
m�r�z��C�[BL�z^��u�a��۰6,�������� ~��ԝ�e�%�
Output for 5.6.17
n��mտ�%,ǡ��[�U�k�2�cLy�6qv�?a�"�%$h�p�mz#^]���
Output for 5.6.16
��vw8��,�H��f��vKT-Sa�^0C�^,ڕ�[��\�Pϝ$���$aT�4�0��"Y��
Output for 5.6.15
MW(��ZqXMG��e��E"� ���Zr/�$�6[�%_l�qP=E�~���l�
Output for 5.6.14
nˊ�����:�Ȍ��fu�-6�J��W�d�x�r�� �Ѿ]S�@�]~��ʼ��>N��
Output for 5.6.13
��N���y|c��>���Ҝ"��;g�/1��O��B�WS�"��6X�S33��$Ys!�M
Output for 5.6.12
��W/U�j���ɰr��.M��ți�hz��u��-Sv��M�w�^zjZ{������K�!
Output for 5.6.11
���l\�$ou �k��g^���� .2 k�J/��Y��D��Eڪ��Z��);f
Output for 5.6.10
s�+�q�^�Q�7��R�n˯)@I̕���m=���6�����7�b�
Output for 5.6.9
�YcO�f��[cotFg��HG�������Ϙ�H70�4��ANP��gW��J�P�-,�
Output for 5.6.8
ә��V�q�(o�� ��^+1�m ���?��]�n˰�Z?���У����cp���
Output for 5.6.7
k�%�׵�Hk:Zu#� S�K�k�A�U��uf�m�SE�n��R�̓����^N�
Output for 5.6.6
����{5�E~C�ۄr�@Rx}�r���������N����^��]A=/�>
Output for 5.6.5
�Z0��H5ؒ�C�q(���e�Svi8�P4��{�M��zd2�Ad�=>k-˱=�W�(X
Output for 5.6.4
lcf��,���O��b]d��o�)IO�t鶋#U ��ܘd�=J��V�ͯ
Output for 5.6.3
�R!"��R��"����9m��9=��f/>�f�=q��u��J![���W�xݶiƂ<�
Output for 5.6.2
Z��)��<� \)SC:юH��z6� ��B|�ݑݑ(� 4��� �y~r}
Output for 5.6.1
�m�Q� �ťD�7��J��o%�//pv]��=�B���]���� �g 6�����.
Output for 5.6.0
�˻>�����O�ɉ<��?�MXjp��m&鴾��n�q�;u�p�c�:3^M �Y9J�
Output for 5.5.38
2����h�ޥ$�i ��8����u�b�L�r " �]W�a�1 ,V�9���� �
Output for 5.5.37
��C<��m$A�c�i�{+(�� y���j�k���g� :.8�eI�V�˥?`Z�\���
Output for 5.5.36
p$�R�M���߽��D^}�?춠����˜L��Y�ڗ� ��pg��;U���E
Output for 5.5.35
=�S�f*��� 9{>����,d`5i�U9�J}4��Ww��}�&-Dߔ��W
Output for 5.5.34
�_ӿ�D��U�s� ��Q&�)��f� �_VQ�\���K��0q�D�,�<Ƹ���
Output for 5.5.33
�5H��oz�`�0�_��������� �H�Fm~6Ү�nn��֕G��#�0xL����@�
Output for 5.5.32
���UYj�Y�ۖ_'��� �F&d�����^�+�˛��`�E|׎y!pU��r/�
Output for 5.5.31
f�F9j�γ��� �C_�Ř�P����d�����gr�� !5�E�<Iˑ#�b\
Output for 5.5.30
ː�.�&��O�*:zw�c�.��Y��h=gۺȹ�#'N��� Qh�t���P�
Output for 5.5.29
���U��=vu�j{O <u���I��/���}�:c�)n�#������e8 �֝��:
Output for 5.5.28
8�����T�pZnR�Dk�� �^}���,��P��ֱT��<��{�#
Output for 5.5.27
Y�K'��<�'%��<��Sk��w&{g����`�>�����$�jWK0����v%��
Output for 5.5.26
@A���H�$��w�%x�<� �:�y˄� �T��G�j��hs��D"���6'jOu%[
Output for 5.5.25
���h�y�A��� �,kg���� i�Q��4 �l�lEiӺ>MG�A��Kn
Output for 5.5.24
��Rt>E�.$+�=�ӓ�S ,�">L����J�t������t��� $�"^�=W
Output for 5.5.23
x�����d��UnF����j��J���ӈueyB�,7'��ǁga���U`pε
Output for 5.5.22
��۩K-&�No\�b��gս��8�¹\�, �E (��r�82�v�->�P��a�
Output for 5.5.21
�Z�b�<�<�r9Q2�&���]�a_FI��D�X1�̣!���QO�r��9��"}�d3sO�
Output for 5.5.20
Yu��S�^mIy_�)�\�?bnT*)V��Y��k�S���;3L�@7�Z�=
Output for 5.5.19
%��֥��D}�����k�� ��9u�R@j��s�ؑW2Lv�ϧ�g_�G�^dq�
Output for 5.5.18
�<�oZaoQ�u��c!�^'�>/W��l9oh�CCF�}I!.c��?@ c8�0���v��1�ip
Output for 5.5.16
�S�ٖP��!��1�a�h:���L^Ƥp�����*��)R�9��K-��"�(|
Output for 5.5.15
~�T*��!qߺUu��%X�;�� x�DΟ�v'Z�@^�#c��ۮ?8^d�p�k
Output for 5.5.14
S4s:������#�i����>�r� �����(��9�+ �hEd��O������{
Output for 5.5.13
����G��#~`8p�Ck��Z��ں��@�m��}C���+���ZCN�� o���Z�p
Output for 5.5.12
�r��������\L�R��xV���F����|���go 1�;���k� �q
Output for 5.5.11
���TF��{�촕u��GQ�*��41�͛/ !>�p7i<�Y�$\�"��#J�?
Output for 5.5.10
1Z;o ��� A���P)��\��}�RM�wq2����v�W�ԻԀv�)>|�I�d
Output for 5.5.9
Z���AC?-�ՠ�Z�K�f���a~�O��W@ƒ�IZ��Rh�3����;
Output for 5.5.8
k1Dp��� T��P�oϛ��S@1��U�S�P�餙9�Q&�֥��I
Output for 5.5.7
�l)pd�b�Yq�B��!��<�rj5�o^D�Pɴ�[�T�~} �L6d��N�BK}�
Output for 5.5.6
-[��EqG�d30Z�Y�/���U)�YE�FwtN),t�[/���,`w��l�`
Output for 5.5.5
��k͂vOw�K��聊1�o�셧g���Lu7�6,��7 =��E�Ө1�
Output for 5.5.4
ߗ:+jE M-�j;g�� -�h�̈́�ZZ.���\p���!9v�chD9$(� ���H
Output for 5.5.3
�a� h 0��o?R�?O��op�P1l<�5E�n�����{�' 3�=�+�j�¥
Output for 5.5.2
r �!����OkӵVտ,�;�s��93o`��U�\⮵$�9y��J�l�Qy�
Output for 5.5.1
m�w��R�])9T��³�Wf9⦩�g�*g�a �|hW-*G0���OK��� �3�3
Output for 5.5.0
�G�w*���ߘ� ,493]`�lb�x�{���U���(Ē"�m�V����k�
Output for 5.4.45
����4Qy�>��L?�۫�6�6�=?v8b�z�+���G�:���Y6 !�`�TOz
Output for 5.4.44
4�jz�,]π�D���k�CN�R��B�Ŋ^��mj���B7�G�hL�ҕ
Output for 5.4.43
��e�p�aC�nѣ�KVF�a0f���=-�ݜ�D�>eȣh���Y��PV3����{!
Output for 5.4.42
��HF$=/Kgn�[��͆����$�HU��n8�N�i�����-:����u�o�
Output for 5.4.41
�a`~c���i��H�D�5V�T�R���?Ef�������j���Ea� ��CT
Output for 5.4.40
J.�,3�N$�*Ӹ���A{z��$4�%A�X+{'Dž�"c�E�6�?���!�hD�
Output for 5.4.39
�o�1q��s�_��V��n�z���M+��*$�)>f{r�Hd�`W��M���I
Output for 5.4.38
T�U�vh�.ho� W����*zt�x�-UO���]�6�p�IޟRo���V[��+��
Output for 5.4.37
��o��!k��\�w' &V��P7�aʼn��b0I�~�o���W�n���]� �Ԓ
Output for 5.4.36
�n3 /�a���)_aw�4nr/�#O��Y��[�09�4�>qX��{2N���GOr�
Output for 5.4.35
��Q�%� �AȾ|j���*n@͠ OPt��D v�zBT�HP����#�D���9����J
Output for 5.4.34
��$�ے�g4v �c����q�z��:m��Թ�f ����S��u�6�V#ھ�m梟�
Output for 5.4.32
#�ÅC^�w�~����7�}����݊Ww�߻X��7��jR��a�8��������9 
Output for 5.4.31
��� ��3��I�]&$��I�i�*G$(����9u��� �z V��� �>�D�
Output for 5.4.30
� };4[B��!�b(��L/IK���>�Λ~�C&q|�C�V��k��x�8eN&K
Output for 5.4.29
�i����n�"B��h��?`gh�= ��2a+t�Ô Z�ZO��e�RB � v�Z�
Output for 5.4.28
N ����F�sx�./RF���F ��ik���j�/����*������cw��
Output for 5.4.27
���]�^`��)�M�5I�D�/6H �<zȱ� *sރ_ʹ[�����s=�K�\���
Output for 5.4.26
E�#cmK�,�C D ˟��񆔟�F�_��޸��)�����|,<r�"f趟 ��Ƕ�
Output for 5.4.25
tq���:mo씺ly{y���q�m,3,�����bB�,"�Ҹ�8C��uS2�I�
Output for 5.4.24
-��}At�b��_��ڮ�JK���ۂ��K��R ��r$��vw�,W,�O�ϛm��
Output for 5.4.23
ML���.��������_t8g?���FI���� I5{��Bx5�Tv�5�.�<*�i
Output for 5.4.22
��;RK%�O�|�M_/�U����$����4vd�1�w����m�)���92
Output for 5.4.21
��r� H����Rޖ2u���� �:w@�h�VS �{����k�"����
Output for 5.4.20
;�S�$9c�I��=+���J�����4�X�N:9"p)�9�;����B�U��w��
Output for 5.4.19
X ��B� ��l�m����oNz}��{��^�`�#Nm-�|�,t ����՛�n��5
Output for 5.4.18
��E���ɍ�-['9]�U���E )4���O�V�x%�ӳ��A�(�$&X�
Output for 5.4.17
A�j-��N��\����X*҉�L��=�dx�z��\��,�����C��k�W��
Output for 5.4.16
=ׂ3��O��v�d=�Т[�x���T� Y+\~2�}7:�5�L��Dr \NV��*�� ���
Output for 5.4.15
��=��^OR��O���ҧ��Hʧ���޴�RzC%F�5ˑ�e�UC�'�&�R�>
Output for 5.4.0 - 5.4.14
Fatal error: Call to undefined function openssl_cipher_iv_length() in /in/CHPMk on line 21
Process exited with code 255.
Output for 5.0.0 - 5.0.5, 5.1.1 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29
Fatal error: Call to undefined function hex2bin() in /in/CHPMk on line 74
Process exited with code 255.
Output for 5.1.0
Fatal error: fatal flex scanner internal error--end of buffer missed in /in/CHPMk on line 80
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/CHPMk on line 9
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.3.11, 4.4.0 - 4.4.1
Parse error: parse error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/CHPMk on line 9
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/CHPMk on line 9
Process exited with code 255.

preferences:
232.99 ms | 401 KiB | 399 Q